Messages in this thread | | | Date | Wed, 31 Oct 2012 19:42:53 -0200 | From | Cesar Eduardo Barros <> | Subject | Re: [PATCH 2/5] mm: frontswap: lazy initialization to allow tmem backends to build/run as modules |
| |
Em 31-10-2012 15:05, Seth Jennings escreveu: > On 10/31/2012 10:07 AM, Dan Magenheimer wrote: >> +#define MAX_INITIALIZABLE_SD 32 > > MAX_INITIALIZABLE_SD should just be MAX_SWAPFILES > >> +static int sds[MAX_INITIALIZABLE_SD]; > > Rather than store and array of enabled types indexed by type, why not > an array of booleans indexed by type. Or a bitfield if you really > want to save space.
Since it is indexed by swap_info_struct's type, and frontswap already pokes directly inside the swap_info_structs, it would be even cleaner to use a boolean field within the swap_info_struct.
And if you are using a field within the swap_info_struct, you could overload the already existing frontswap_map field, which should only have any use if you have a frontswap module already loaded. That is, move the vzalloc of the frontswap_map to within frontswap's init function, and call it outside the swapfile_lock/swapon_mutex. This also has the advantage of not allocating the frontswap_map when it is not going to be used.
-- Cesar Eduardo Barros cesarb@cesarb.net cesar.barros@gmail.com
| |