On Mon, May 07, 2001 at 08:24:56AM -0600, Ronald G Minnich wrote:
> On 7 May 2001, Eric W. Biederman wrote:
> 
> > 1) We don't set the Latency timers which are a cards timeslice on the
> >    PCI bus.  This can result in non-peak performance from various PCI
> >    devices.

I've even seen devices that malfunction when the latency timer is left set
to zero.
 
> Shouldn't we do that in the kernel. 

I think it's a step that should go along with whoever configures the PCI
bus.  _If_ linuxbios configures the bus, it should set the latency timer.
Obviously, if the kernel does it that's its problem.  I don't think it's
smart to have linuxbios do a partial pci bus configuration.

BTW, most of the time the kernel will detect latency_timer==0 and correct
it when drivers call pci_set_master().  Other times drivers will check and
correct it themselves.  But I don't think that's an excuse not to set it;
it's an ugly bandaid for broken BIOSes, and it doesn't try to figure out
what the correct setting should be, always setting it to 64. But for that
reason you don't often see the effects of not setting latency_timer.

Examples:
http://lxr.linux.no/source/arch/i386/kernel/pci-i386.c#L340
http://lxr.linux.no/source/drivers/scsi/advansys.c#L15612

> > 2) We don't setup any PCI arbiters, the PCI arbiter is the scheduler
> >    for the PCI bus.  This is less of an issue as generally, the
> >    hardware is relatively inefficient but it could still be an issue.
> 
> I don't even know how :-)
> 
> ron

Reply via email to