on 21/08/2012 04:59 Scott Long said the following: > This gets brought up from time to time, and I honestly thought that I swept > most of the problems up a few years ago. The mistake that I made in the mlx > driver that was recently corrected was evidence of a previous sweep. > > If anyone wants to do another sweep, the thing to grep for is any drivers > that use MAXPHYS to size their i/o's. For the drivers that do that, you then > have to see if they can actually handle an arbitrary number of scatter-gather > elements. If they can't then they need to stop using MAXPHYS and start using > a constant that applies to the driver. My quick scan shows the following > would need to be investigated: > > sys/dev/ata (legacy ata) /sys/dev/isp /sys/dev/mmcsd /sys/dev/mvs > > The only other problem is that struct but contains an element sized on > MAXPHYS for doing swapper I/O. Increasing MAXPHYS will increase this, and at > one point I think that Alan Cox might have wanted to find a better way to > hold swap info. Otherwise, increasing MAXPHYS causes no problems and is > something that has run in production for quite some time at places like Yahoo > and Netflix. I would like to use this opportunity to remind about another abuse in drivers: MAXBSIZE. This constant should be private to buffer cache / FS drivers layer, but some drivers abuse it for things related to physical I/O (mostly [only?] as bus_dma_tag_create parameter). -- Andriy GaponReceived on Tue Aug 21 2012 - 07:39:53 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:29 UTC