lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Sat, 10 Oct 2020 10:20:34 +0800 From: Coly Li <colyli@...e.de> To: ira.weiny@...el.com Cc: Andrew Morton <akpm@...ux-foundation.org>, Thomas Gleixner <tglx@...utronix.de>, Ingo Molnar <mingo@...hat.com>, Borislav Petkov <bp@...en8.de>, Andy Lutomirski <luto@...nel.org>, Peter Zijlstra <peterz@...radead.org>, Kent Overstreet <kent.overstreet@...il.com>, x86@...nel.org, Dave Hansen <dave.hansen@...ux.intel.com>, Dan Williams <dan.j.williams@...el.com>, Fenghua Yu <fenghua.yu@...el.com>, linux-doc@...r.kernel.org, linux-kernel@...r.kernel.org, linux-nvdimm@...ts.01.org, linux-fsdevel@...r.kernel.org, linux-mm@...ck.org, linux-kselftest@...r.kernel.org, linuxppc-dev@...ts.ozlabs.org, kvm@...r.kernel.org, netdev@...r.kernel.org, bpf@...r.kernel.org, kexec@...ts.infradead.org, linux-bcache@...r.kernel.org, linux-mtd@...ts.infradead.org, devel@...verdev.osuosl.org, linux-efi@...r.kernel.org, linux-mmc@...r.kernel.org, linux-scsi@...r.kernel.org, target-devel@...r.kernel.org, linux-nfs@...r.kernel.org, ceph-devel@...r.kernel.org, linux-ext4@...r.kernel.org, linux-aio@...ck.org, io-uring@...r.kernel.org, linux-erofs@...ts.ozlabs.org, linux-um@...ts.infradead.org, linux-ntfs-dev@...ts.sourceforge.net, reiserfs-devel@...r.kernel.org, linux-f2fs-devel@...ts.sourceforge.net, linux-nilfs@...r.kernel.org, cluster-devel@...hat.com, ecryptfs@...r.kernel.org, linux-cifs@...r.kernel.org, linux-btrfs@...r.kernel.org, linux-afs@...ts.infradead.org, linux-rdma@...r.kernel.org, amd-gfx@...ts.freedesktop.org, dri-devel@...ts.freedesktop.org, intel-gfx@...ts.freedesktop.org, drbd-dev@...ts.linbit.com, linux-block@...r.kernel.org, xen-devel@...ts.xenproject.org, linux-cachefs@...hat.com, samba-technical@...ts.samba.org, intel-wired-lan@...ts.osuosl.org Subject: Re: [PATCH RFC PKS/PMEM 48/58] drivers/md: Utilize new kmap_thread() On 2020/10/10 03:50, ira.weiny@...el.com wrote: > From: Ira Weiny <ira.weiny@...el.com> > > These kmap() calls are localized to a single thread. To avoid the over > head of global PKRS updates use the new kmap_thread() call. > Hi Ira, There were a number of options considered. 1) Attempt to change all the thread local kmap() calls to kmap_atomic() 2) Introduce a flags parameter to kmap() to indicate if the mapping should be global or not 3) Change ~20-30 call sites to 'kmap_global()' to indicate that they require a global mapping of the pages 4) Change ~209 call sites to 'kmap_thread()' to indicate that the mapping is to be used within that thread of execution only I copied the above information from patch 00/58 to this message. The idea behind kmap_thread() is fine to me, but as you said the new api is very easy to be missed in new code (even for me). I would like to be supportive to option 2) introduce a flag to kmap(), then we won't forget the new thread-localized kmap method, and people won't ask why a _thread() function is called but no kthread created. Thanks. Coly Li > Cc: Coly Li <colyli@...e.de> (maintainer:BCACHE (BLOCK LAYER CACHE)) > Cc: Kent Overstreet <kent.overstreet@...il.com> (maintainer:BCACHE (BLOCK LAYER CACHE)) > Signed-off-by: Ira Weiny <ira.weiny@...el.com> > --- > drivers/md/bcache/request.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/md/bcache/request.c b/drivers/md/bcache/request.c > index c7cadaafa947..a4571f6d09dd 100644 > --- a/drivers/md/bcache/request.c > +++ b/drivers/md/bcache/request.c > @@ -44,10 +44,10 @@ static void bio_csum(struct bio *bio, struct bkey *k) > uint64_t csum = 0; > > bio_for_each_segment(bv, bio, iter) { > - void *d = kmap(bv.bv_page) + bv.bv_offset; > + void *d = kmap_thread(bv.bv_page) + bv.bv_offset; > > csum = bch_crc64_update(csum, d, bv.bv_len); > - kunmap(bv.bv_page); > + kunmap_thread(bv.bv_page); > } > > k->ptr[KEY_PTRS(k)] = csum & (~0ULL >> 1); >
Powered by blists - more mailing lists