Re: [PATCH 2/5] mm: frontswap: lazy initialization to allow tmembackends to build/run as modules

From: Cesar Eduardo Barros
Date: Wed Oct 31 2012 - 17:43:04 EST


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@xxxxxxxxxx
cesar.barros@xxxxxxxxx
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/