All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>
Cc: Eric Van Hensbergen
	<ericvanhensbergen-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>,
	kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org,
	lguest <lguest-mnsaURCQ41sdnm+yROfE0A@public.gmane.org>,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	virtualization-qjLDD68F18O7TbgM5vRIOg@public.gmane.org
Subject: Re: [PATCH 3/3] virtio PCI device
Date: Tue, 27 Nov 2007 10:25:59 +0100	[thread overview]
Message-ID: <200711271026.00084.arnd@arndb.de> (raw)
In-Reply-To: <474BDD28.7050801-atKUWr5tajBWk0Htik3J/w@public.gmane.org>

On Tuesday 27 November 2007, Avi Kivity wrote:
> > :-)  Do you know if there is a hard limit on the number of devices on 
> > a PCI bus?  My concern was that it was limited by something stupid 
> > like an 8-bit identifier.
> 
> IIRC pci slots are 8-bit, but you can have multiple buses, so 
> effectively 16 bits of device address space (discounting functions which 
> are likely not hot-pluggable).

You have an 8 bit bus number and an 8 bit device/function number.
The function number is 3 bits, so if you want to use only function 0
for everything, you are limited to a little under 8192 (2^(8+5)) devices
per PCI domain. PC style hardware cannot easily address multiple PCI
domains, but I think you can have them if you assume that the guest is
using mmconfig.

For using multiple buses, the easiest way could be to have every
device/function on bus 0 be a bridge by itself, so you end up with a
flat number space for the actual devices,

$ lspci -t
 [0000:00]-+-00.0-[0000:01]--+-00.0
           |                 +-01.0
           |                 +-02.0
           |                 + ...
           |                 \-3f.0
           +-00.1-[0000:02]--+-00.0
           |                 +-01.0
           |                 +-02.0
           |                 + ...
           |                 \-3f.0
           + ...
           |
           +-3f.6-[0000:ff]--+-00.0
                             +-01.0
                             +-02.0
                             + ...
                             \-3f.0

	Arnd <><

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/

WARNING: multiple messages have this Message-ID (diff)
From: Arnd Bergmann <arnd@arndb.de>
To: kvm-devel@lists.sourceforge.net
Cc: Anthony Liguori <aliguori@us.ibm.com>,
	Eric Van Hensbergen <ericvanhensbergen@us.ibm.com>,
	kvm-devel@lists.sourceforge.net, lguest <lguest@ozlabs.org>,
	linux-kernel@vger.kernel.org, virtualization@lists.osdl.org
Subject: Re: [kvm-devel] [PATCH 3/3] virtio PCI device
Date: Tue, 27 Nov 2007 10:25:59 +0100	[thread overview]
Message-ID: <200711271026.00084.arnd@arndb.de> (raw)
In-Reply-To: <474BDD28.7050801@qumranet.com>

On Tuesday 27 November 2007, Avi Kivity wrote:
> > :-)  Do you know if there is a hard limit on the number of devices on 
> > a PCI bus?  My concern was that it was limited by something stupid 
> > like an 8-bit identifier.
> 
> IIRC pci slots are 8-bit, but you can have multiple buses, so 
> effectively 16 bits of device address space (discounting functions which 
> are likely not hot-pluggable).

You have an 8 bit bus number and an 8 bit device/function number.
The function number is 3 bits, so if you want to use only function 0
for everything, you are limited to a little under 8192 (2^(8+5)) devices
per PCI domain. PC style hardware cannot easily address multiple PCI
domains, but I think you can have them if you assume that the guest is
using mmconfig.

For using multiple buses, the easiest way could be to have every
device/function on bus 0 be a bridge by itself, so you end up with a
flat number space for the actual devices,

$ lspci -t
 [0000:00]-+-00.0-[0000:01]--+-00.0
           |                 +-01.0
           |                 +-02.0
           |                 + ...
           |                 \-3f.0
           +-00.1-[0000:02]--+-00.0
           |                 +-01.0
           |                 +-02.0
           |                 + ...
           |                 \-3f.0
           + ...
           |
           +-3f.6-[0000:ff]--+-00.0
                             +-01.0
                             +-02.0
                             + ...
                             \-3f.0

	Arnd <><

WARNING: multiple messages have this Message-ID (diff)
From: Arnd Bergmann <arnd-r2nGTMty4D4@public.gmane.org>
To: kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org
Cc: Eric Van Hensbergen
	<ericvanhensbergen-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>,
	kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org,
	lguest <lguest-mnsaURCQ41sdnm+yROfE0A@public.gmane.org>,
	linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	virtualization-qjLDD68F18O7TbgM5vRIOg@public.gmane.org
Subject: Re: [PATCH 3/3] virtio PCI device
Date: Tue, 27 Nov 2007 10:25:59 +0100	[thread overview]
Message-ID: <200711271026.00084.arnd@arndb.de> (raw)
In-Reply-To: <474BDD28.7050801-atKUWr5tajBWk0Htik3J/w@public.gmane.org>

On Tuesday 27 November 2007, Avi Kivity wrote:
> > :-)  Do you know if there is a hard limit on the number of devices on 
> > a PCI bus?  My concern was that it was limited by something stupid 
> > like an 8-bit identifier.
> 
> IIRC pci slots are 8-bit, but you can have multiple buses, so 
> effectively 16 bits of device address space (discounting functions which 
> are likely not hot-pluggable).

You have an 8 bit bus number and an 8 bit device/function number.
The function number is 3 bits, so if you want to use only function 0
for everything, you are limited to a little under 8192 (2^(8+5)) devices
per PCI domain. PC style hardware cannot easily address multiple PCI
domains, but I think you can have them if you assume that the guest is
using mmconfig.

For using multiple buses, the easiest way could be to have every
device/function on bus 0 be a bridge by itself, so you end up with a
flat number space for the actual devices,

$ lspci -t
 [0000:00]-+-00.0-[0000:01]--+-00.0
           |                 +-01.0
           |                 +-02.0
           |                 + ...
           |                 \-3f.0
           +-00.1-[0000:02]--+-00.0
           |                 +-01.0
           |                 +-02.0
           |                 + ...
           |                 \-3f.0
           + ...
           |
           +-3f.6-[0000:ff]--+-00.0
                             +-01.0
                             +-02.0
                             + ...
                             \-3f.0

	Arnd <><

-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/

  parent reply	other threads:[~2007-11-27  9:25 UTC|newest]

Thread overview: 66+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-11-08  2:46 [PATCH 0/3] virtio PCI driver Anthony Liguori
     [not found] ` <11944899922822-git-send-email-aliguori-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2007-11-08  2:46   ` [PATCH 1/3] Export vring functions for modules to use Anthony Liguori
2007-11-08  2:46     ` Anthony Liguori
     [not found]     ` <11944900141678-git-send-email-aliguori-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2007-11-08  2:46       ` [PATCH 2/3] Put the virtio under the virtualization menu Anthony Liguori
2007-11-08  2:46         ` Anthony Liguori
     [not found]         ` <11944900152750-git-send-email-aliguori-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2007-11-08  2:46           ` [PATCH 3/3] virtio PCI device Anthony Liguori
2007-11-08  2:46             ` Anthony Liguori
     [not found]             ` <11944900163817-git-send-email-aliguori-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2007-11-08  6:12               ` Avi Kivity
2007-11-08  6:12                 ` [kvm-devel] " Avi Kivity
     [not found]                 ` <4732A8E5.6090307-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-11-08 13:54                   ` Anthony Liguori
2007-11-08 13:54                     ` [kvm-devel] " Anthony Liguori
     [not found]                     ` <47331531.8070709-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2007-11-08 14:37                       ` Avi Kivity
2007-11-08 14:37                         ` [kvm-devel] " Avi Kivity
     [not found]                         ` <47331F47.70304-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-11-08 15:06                           ` Anthony Liguori
2007-11-08 15:06                             ` [kvm-devel] " Anthony Liguori
     [not found]                             ` <473325EB.5090907-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2007-11-08 15:13                               ` Avi Kivity
2007-11-08 15:13                                 ` [kvm-devel] " Avi Kivity
2007-11-08 23:43                       ` Dor Laor
2007-11-08 23:43                         ` [kvm-devel] " Dor Laor
2007-11-08 15:24               ` Arnd Bergmann
2007-11-08 17:46               ` Arnd Bergmann
2007-11-08 17:46                 ` [kvm-devel] " Arnd Bergmann
     [not found]                 ` <200711081846.36821.arnd-r2nGTMty4D4@public.gmane.org>
2007-11-08 19:04                   ` Anthony Liguori
2007-11-08 19:04                     ` [kvm-devel] " Anthony Liguori
     [not found]                     ` <47335DC6.7090603-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2007-11-09 11:03                       ` Arnd Bergmann
2007-11-09 11:03                         ` [kvm-devel] " Arnd Bergmann
2007-11-09  0:39               ` Dor Laor
2007-11-09  0:39                 ` [kvm-devel] " Dor Laor
     [not found]                 ` <4733AC3A.20701-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-11-09  2:17                   ` Anthony Liguori
2007-11-09  2:17                     ` [kvm-devel] " Anthony Liguori
2007-11-20 15:01             ` Avi Kivity
2007-11-20 15:43               ` Anthony Liguori
2007-11-20 15:43                 ` Anthony Liguori
     [not found]                 ` <474300AD.4060509-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2007-11-20 16:12                   ` Avi Kivity
2007-11-20 16:12                     ` [kvm-devel] " Avi Kivity
     [not found]                     ` <4743076F.8000105-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-11-20 22:16                       ` Anthony Liguori
2007-11-20 22:16                         ` [kvm-devel] " Anthony Liguori
     [not found]                         ` <47435CCB.1050506-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2007-11-21  7:13                           ` Avi Kivity
2007-11-21  7:13                             ` [kvm-devel] " Avi Kivity
     [not found]                             ` <4743DAA4.70800-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-11-21 18:22                               ` Zachary Amsden
2007-11-21 18:22                                 ` [kvm-devel] " Zachary Amsden
     [not found]                                 ` <1195669377.6352.247.camel-cxY/u30q8FloTgUnLF1by8fTvwmfpRNyZeezCHUQhQ4@public.gmane.org>
2007-11-22  7:32                                   ` Avi Kivity
2007-11-22  7:32                                     ` [kvm-devel] " Avi Kivity
2007-11-23 16:51                               ` Anthony Liguori
2007-11-23 16:51                                 ` Anthony Liguori
     [not found]                                 ` <4747051C.3090903-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2007-11-23 17:47                                   ` Avi Kivity
2007-11-23 17:47                                     ` [kvm-devel] " Avi Kivity
2007-11-26 19:18                                     ` Anthony Liguori
     [not found]                                       ` <474B1BF3.20901-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org>
2007-11-27  9:02                                         ` Avi Kivity
2007-11-27  9:02                                           ` [kvm-devel] " Avi Kivity
     [not found]                                           ` <474BDD28.7050801-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-11-27  9:09                                             ` Carsten Otte
2007-11-27  9:09                                               ` [kvm-devel] " Carsten Otte
     [not found]                                               ` <474BDEDE.6060603-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
2007-11-27  9:27                                                 ` Avi Kivity
2007-11-27  9:27                                                   ` Avi Kivity
     [not found]                                                   ` <474BE319.502-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-11-27 10:12                                                     ` Carsten Otte
2007-11-27 10:12                                                       ` [kvm-devel] " Carsten Otte
     [not found]                                                       ` <474BEDAB.3000305-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
2007-11-27 10:19                                                         ` Avi Kivity
2007-11-27 10:19                                                           ` [kvm-devel] " Avi Kivity
     [not found]                                                           ` <474BEF28.9010005-atKUWr5tajBWk0Htik3J/w@public.gmane.org>
2007-11-27 10:28                                                             ` Carsten Otte
2007-11-27 10:28                                                               ` [kvm-devel] " Carsten Otte
     [not found]                                                               ` <474BF157.3080709-tA70FqPdS9bQT0dZR+AlfA@public.gmane.org>
2007-11-27 13:27                                                                 ` Dor Laor
2007-11-27  9:25                                             ` Arnd Bergmann [this message]
2007-11-27  9:25                                               ` Arnd Bergmann
2007-11-27  9:25                                               ` [kvm-devel] " Arnd Bergmann
2007-11-08  6:49           ` [PATCH 2/3] Put the virtio under the virtualization menu Avi Kivity
2007-11-08  6:49             ` [kvm-devel] " Avi Kivity

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200711271026.00084.arnd@arndb.de \
    --to=arnd-r2ngtmty4d4@public.gmane.org \
    --cc=ericvanhensbergen-r/Jw6+rmf7HQT0dZR+AlfA@public.gmane.org \
    --cc=kvm-devel-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org \
    --cc=lguest-mnsaURCQ41sdnm+yROfE0A@public.gmane.org \
    --cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=virtualization-qjLDD68F18O7TbgM5vRIOg@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.