Subject: Re: MAXPHYS
To: Thor Lancelot Simon <tls@rek.tjls.com>
From: None <wojtek@wojtek.from.pl>
List: tech-kern
Date: 02/05/2001 00:04:02
> > > away so that they don't ultimately send 8k transfers to the disks.
> > couldn't be #define MAXPHYS changed to int tell_maxphys(device_major)???
> >
> > pciide will tell 64kB unless modified, ccd depending of
> > stripe size and value from disks, raidframe a_very_big_value etc., scsi
> > drivers depending of implement etc..
>
> It's not that simple. The maximum transfer size may be limited not by
> the device you're talking to but by, for example, the bus you're talking
char maxphys_table_shifts[MAX_MAJOR];
so maybe 1<<maxphys_table_shifts[device_major] with table filled on system
initialization.
> to it across. But in general, yes, I think that we should try to migrate
> to this kind of approach.
>
> Note that it was essentially pointless to do so before the advent of UBC
> because increasing MAXBSIZE beyond 64K would have been horrifically
> inefficient. At the moment, there seem to be some performance problems
> with UBC in which it doesn't cluster up to MAXPHYS anyway, even with a
> 64k MAXPHYS, but those will surely be fixed soon; so it would seem to me
> that replacing the constant MAXPHYS with a scheme that propagates this
> kind of information through the device tree would be a good idea.
>