Prev: [PATCH 4/8] v5 Add mutex for add/remove of memory blocks
Next: [PATCH 3/8] v5 Add section count to memory_block
From: Pekka Enberg on 9 Aug 2010 14:40 On Mon, Aug 9, 2010 at 8:26 PM, Nitin Gupta <ngupta(a)vflare.org> wrote: > Currently, the user has to explicitly write a positive value to > initstate sysfs node before the device can be used. This event > triggers allocation of per-device metadata like memory pool, > table array and so on. > > We do not pre-initialize all zram devices since the 'table' array, > mapping disk blocks to compressed chunks, takes considerable amount > of memory (8 bytes per page). So, pre-initializing all devices will > be quite wasteful if only few or none of the devices are actually > used. > > This explicit device initialization from user is an odd requirement and > can be easily avoided. We now initialize the device when first write is > done to the device. > > Signed-off-by: Nitin Gupta <ngupta(a)vflare.org> AFAICT, most hardware block device drivers do things like this in the probe function. Why can't we do that for zram as well and drop the ->init_done and ->init_lock parts? -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
From: Nitin Gupta on 9 Aug 2010 23:40
On 08/10/2010 12:06 AM, Pekka Enberg wrote: > On Mon, Aug 9, 2010 at 8:26 PM, Nitin Gupta <ngupta(a)vflare.org> wrote: >> Currently, the user has to explicitly write a positive value to >> initstate sysfs node before the device can be used. This event >> triggers allocation of per-device metadata like memory pool, >> table array and so on. >> >> We do not pre-initialize all zram devices since the 'table' array, >> mapping disk blocks to compressed chunks, takes considerable amount >> of memory (8 bytes per page). So, pre-initializing all devices will >> be quite wasteful if only few or none of the devices are actually >> used. >> >> This explicit device initialization from user is an odd requirement and >> can be easily avoided. We now initialize the device when first write is >> done to the device. >> >> Signed-off-by: Nitin Gupta <ngupta(a)vflare.org> > > AFAICT, most hardware block device drivers do things like this in the > probe function. Why can't we do that for zram as well and drop the > ->init_done and ->init_lock parts? > I think probe is only for PCI devices? Maybe should hook into open function in struct block_device_operations. That way, we can also drop init_done and init_lock parts. Thanks, Nitin -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo(a)vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/ |