[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] Possible bug with pass-through hot-plug?

  • To: Simon Horman <horms@xxxxxxxxxxxx>
  • From: Tom Rotenberg <tom.rotenberg@xxxxxxxxx>
  • Date: Thu, 15 Oct 2009 16:02:59 +0200
  • Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
  • Delivery-date: Thu, 15 Oct 2009 07:03:24 -0700
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=O5dPEp7Z9TKvgalBN8Z/uuFt9hgN2ML5/D3P/81ahXLRU0rjK8Dj/VNzD5vEXm2y5E Df42VmyXUz5ccAaH+Q+Ty3nI5w42ZRiM4tMZSF6fnkWKloA7OkTyi8GMaOGKITaoTOJj KAHLNakWjfb+lvKJXTZsRmgTJi+iYo98R7qPM=
  • List-id: Xen developer discussion <xen-devel.lists.xensource.com>

Well, i don't have a patch for it, as i'm not that skilled with
writing ASL code for the DSDT.
When i tried to change the levle interrupt to edge, it didn't work,
although i though it should work, so it might be a bug i wrote.

Bottom line, if you are skilled enough to write a "smarter" device
search code for the DSDT - you should try it. I think that will solve
it. If you don't think you'll be able to pull it off, i can try to
prepare a patch, but it's not my sepciality... :)

What do u think we should do to solve it?

On Thu, Oct 15, 2009 at 1:06 PM, Simon Horman <horms@xxxxxxxxxxxx> wrote:
> On Thu, Oct 15, 2009 at 11:38:39AM +0200, Tom Rotenberg wrote:
>> Simon,
>> i'm glad you were able to re-produce it :)
>> About the bug, i suspect that the code in the virtual DSDT, which
>> "checks" which device was hot-plugged, is really not efficient, as it
>> needs to go over all sltos prior to the new assigned slot before
>> notifying the device. This means that if the slot number is 0x14, then
>> the 'if' clause in the dsdt, needs about 20*8=160 if statements before
>> it's notifying, and this what i think is causing the problem.
>> Especially, because the GPE interrupt is defined as level interrupt.
>> This bug can be fixed, using one of the followings:
>> 1. Improve the code in the virtual DSDT (e.g.: doing some sort of
>> 'binary-search' to see which device should be notified. This will
>> reduce the number of 'if' clause to evaluate from 160 to ~5)
>> 2. Change the interrupt to edge interrupt, and see if it helps
>> What do u say?
> It sounds worth investigating. do you want to come up with a patch?

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.