cvs commit: src/sys/sys conf.h src/sys/geom geom_disk.c
dump_machdep.c minidump_machdep.c src/sys/amd64/amd64 dump_machdep.c
scottl at samsco.org
Fri Feb 15 12:08:43 PST 2008
Ivan Voras wrote:
> Scott Long wrote:
>> scottl 2008-02-15 06:26:25 UTC
>> FreeBSD src repository
>> Modified files:
>> sys/sys conf.h
>> sys/geom geom_disk.c
>> sys/i386/i386 dump_machdep.c minidump_machdep.c
>> sys/amd64/amd64 dump_machdep.c minidump_machdep.c
>> Teach the dump and minidump code to respect the maxioszie attribute of
>> the disk; the hard-coded assumption of 64K doesn't work in all cases.
> Will this work in the other direction, i.e. issuing requests larger than
> 64KB / 128KB if the device supports it?
Yes, though I need to review all of the drivers to make sure they're not
setting a bogus maxiosize that they can't actually support.
If you're looking to improve dump speed, there are two things that need
to be done. First, the dumpsys code and driver interface needs to be
changed to send the driver large chunks (like PSE-sized chunks, maybe)
and let the driver decide how much of it to handle before returning.
Second, the dumpsys code and drivers need to be taught to handle
physical addresses. Right now, the dumpsys code iterates through all
the pages in the system (or through the kernel map if it's a minidump),
calls pmap_kenter to generate a virtual address for the driver, then the
driver calls busdma and has it call pmap_kextract to get the physical
address. That can definitely be improved.
More information about the cvs-src