On Tue, May 19, 2015 at 01:49:45PM +0800, Herbert Xu wrote: > On Mon, May 18, 2015 at 10:46:56PM -0700, Jaegeuk Kim wrote: > > This patch adds a parameter, gfp_t, for __crypto_alloc_tfm. > > Now EXT4 and F2FS use the crypto engine to encrypt a page when writing it to the > > disk. > > That happens during ->writepage and it needs to allocate memory with > > GFP_NOFS. > > > > Otherwise, in the f2fs case, kernel reports such the following warning. > > Normally crypto structures should only be allocated on control > paths where sleeping or swapping is not an issue. Why is ext4 > doing crypto allocations on the data path? > Recently, Ted introduced per-file encryption feature as follows. https://lwn.net/Articles/639427/ The call path in fs/ext4/crypto.c is: - writepage - ext4_encrypt - ext4_get_crypto_ctx - crypto_alloc_ablkcipher AFAIK, this way can achieve to reduce memory footprint gracefully. Just before submitting bios, fs allocates the required memory, and then end_io will free them in pair. Thanks, > Cheers, > -- > Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> > Home Page: http://gondor.apana.org.au/~herbert/ > PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt > -- > 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/ -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html