From mboxrd@z Thu Jan 1 00:00:00 1970 From: Simon Horman Subject: Re: Possible bug with pass-through hot-plug? Date: Thu, 15 Oct 2009 22:06:35 +1100 Message-ID: <20091015110632.GA14946@verge.net.au> References: <20091009120927.GA31495@verge.net.au> <8686c3cd0910090729p7f7a1c2aq482bf9c70fab0910@mail.gmail.com> <20091010014127.GB22324@verge.net.au> <8686c3cd0910110257oa841842q2ed87f6b0f5b7a35@mail.gmail.com> <20091012223616.GC9072@verge.net.au> <8686c3cd0910130208k7b9b0feva576864c9d819737@mail.gmail.com> <20091013094345.GA16712@verge.net.au> <8686c3cd0910130252m6a57388cv8b4d5211a14a4998@mail.gmail.com> <20091015093107.GA11293@verge.net.au> <8686c3cd0910150238h3d79d81dse8ee1ecb8f5350f2@mail.gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: <8686c3cd0910150238h3d79d81dse8ee1ecb8f5350f2@mail.gmail.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Tom Rotenberg Cc: xen-devel@lists.xensource.com List-Id: xen-devel@lists.xenproject.org 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?