public inbox for kvm@vger.kernel.org
 help / color / mirror / Atom feed
From: Markus Armbruster <armbru@redhat.com>
To: Anthony Liguori <anthony@codemonkey.ws>
Cc: Anjali Kulkarni <anjali@juniper.net>, Avi Kivity <avi@redhat.com>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
	"qemu-devel@nongnu.org" <qemu-devel@nongnu.org>
Subject: Re: Hitting 29 NIC limit
Date: Fri, 15 Oct 2010 11:11:24 +0200	[thread overview]
Message-ID: <m3sk074y83.fsf@blackfin.pond.sub.org> (raw)
In-Reply-To: <4CB6FE94.4030203@codemonkey.ws> (Anthony Liguori's message of "Thu, 14 Oct 2010 07:59:00 -0500")

Anthony Liguori <anthony@codemonkey.ws> writes:

> On 10/14/2010 07:36 AM, Markus Armbruster wrote:
>> Avi Kivity<avi@redhat.com>  writes:
>>
>>    
>>>   On 10/14/2010 12:54 AM, Anthony Liguori wrote:
>>>      
>>>> On 10/13/2010 05:32 PM, Anjali Kulkarni wrote:
>>>>        
>>>>> Hi,
>>>>>
>>>>> Using the legacy way of starting up NICs, I am hitting a limitation
>>>>> after 29
>>>>> NICs ie no more than 29 are detected (that's because of the 32 PCI slot
>>>>> limit on a single bus- 3 are already taken up)
>>>>> I had initially increased the MAX_NICS to 48, just on my tree, to get to
>>>>> more, but ofcource that wont work.
>>>>> Is there any way to go beyond 29 NICs the legacy way?  What is the
>>>>> maximum
>>>>> that can be supported by the qdev mothod?
>>>>>          
>>>> I got up to 104 without trying very hard using the following script:
>>>>
>>>> args=""
>>>> for slot in 5 6 7 8 9 10 11 12 13 14 15 16 17; do
>>>> for fn in 0 1 2 3 4 5 6 7; do
>>>>      args="$args -netdev user,id=eth${slot}_${fn}"
>>>>      args="$args -device
>>>> virtio-net-pci,addr=${slot}.${fn},netdev=eth${slot}_${fn},multifunction=on,romfile="
>>>> done
>>>> done
>>>>
>>>> x86_64-softmmu/qemu-system-x86_64 -hda ~/images/linux.img ${args}
>>>> -enable-kvm
>>>>
>>>> The key is to make the virtio-net devices multifunction and to fill
>>>> out all 8 functions for each slot.
>>>>        
>> I'm amazed that works.  Can't see how creating another qdev in the same
>> slot makes a proper multifunction device.
>>    
>
> multifunction=on sets the multifunction bit for the PCI device.  Then
> it's a matter of setting the address to be a specific function.

I missed that bit, or perhaps forgot it already.  Neat!

Unfortunately, it's not yet good enough for hot plug.  We need to plug
the complete device in one go, not function by function.  This is harder
than hot unplug, where we can just add a command "unplug this PCI
device", then device_del its functions at our leisure.  The symmetric
way to plug would be device_add the functions, then plug the device.

Backward compatibility headache: current device_add/del plug/unplug
automatically.

> Our default platform devices are actually multifunction.

Yes, but they're built "by hand".

[...]

  reply	other threads:[~2010-10-15  9:11 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <C8DB7E5F.2FEA4%anjali@juniper.net>
2010-10-13 22:32 ` Hitting 29 NIC limit Anjali Kulkarni
2010-10-13 22:54   ` [Qemu-devel] " Anthony Liguori
2010-10-14 12:07     ` Avi Kivity
2010-10-14 12:10       ` Daniel P. Berrange
2010-10-14 12:57         ` Anthony Liguori
2010-10-18 20:07           ` H. Peter Anvin
2010-10-14 21:42         ` Richard W.M. Jones
2010-10-14 21:57           ` Anthony Liguori
2010-10-14 22:00             ` Anjali Kulkarni
2010-10-14 22:09               ` Anthony Liguori
2010-10-14 22:12                 ` Anjali Kulkarni
2010-10-14 22:17                   ` Anthony Liguori
2010-11-16 17:23                     ` Michael S. Tsirkin
2010-11-16 19:00                       ` Anthony Liguori
2010-10-14 22:08             ` [Qemu-devel] " Richard W.M. Jones
2010-10-14 12:36       ` Markus Armbruster
2010-10-14 12:59         ` Anthony Liguori
2010-10-15  9:11           ` Markus Armbruster [this message]
2010-10-15 18:49             ` Passing in additional info to guest OS and e1000 test suite? Anjali Kulkarni
2010-10-15 20:02               ` Anthony Liguori
2010-10-14 12:54       ` [Qemu-devel] Hitting 29 NIC limit Anthony Liguori
2010-10-14 13:23         ` Avi Kivity
2010-10-14 14:11           ` Anthony Liguori
2010-10-14 14:53             ` Avi Kivity
2010-10-28 20:52       ` [Qemu-devel] Hitting 29 NIC limit (+Intel VT-c) linux_kvm
2010-11-16 17:21       ` Hitting 29 NIC limit Michael S. Tsirkin

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=m3sk074y83.fsf@blackfin.pond.sub.org \
    --to=armbru@redhat.com \
    --cc=anjali@juniper.net \
    --cc=anthony@codemonkey.ws \
    --cc=avi@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=qemu-devel@nongnu.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox