Re: [PATCH] Newbus locking

From: Attilio Rao <attilio_at_freebsd.org>
Date: Sat, 1 Aug 2009 20:34:55 +0200
2009/8/1 Hans Petter Selasky <hselasky_at_c2i.net>:
> On Saturday 01 August 2009 04:17:42 Giovanni Trematerra wrote:
>> > On Fri, Jul 31, 2009 at 7:19 PM, Hans Petter Selasky<hselasky_at_c2i.net>
>> > wrote:
>> >
>> >
>> > I'm not saying that your approach will not work or that it is wrong. I'm
>> > saying that it is not fast enough. Your patch affects the boottime, in a
>> > negative way.
>>
>> I tested a patch for a while. I didn't notice any slow down in boot time.
>> Well, I haven't measured it but I can't see any noticeable difference
>> even booting from an USB key.
>
> Hi,
>
> We are talking about some seconds. Store the "ticks" varible in "usb_attach()"
> in sys/dev/usb/controller/usb_controller.c and print out the difference every
> time "usb_bus_explore()" is called having "if (bus->bus_roothold != NULL)".

So, thanks to the precious help of Peter Holm I worked on this patch
fixing 3 problems reported by Peter and addressing the Hans' concern:
now newbus lock is not held for the whole duration of explore handler,
but just acquired and released when needed (really modifying the
newbus subtree). I think it can also be faster than the Giant version
now.
New patch is here:
http://www.freebsd.org/~attilio/Yahoo/newbus/newbus_locking4.diff

Please let me know if you can note any regressions.

Thanks,
Attilio


-- 
Peace can only be achieved by understanding - A. Einstein
Received on Sat Aug 01 2009 - 16:34:57 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:53 UTC