[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH RFC PKS/PMEM 48/58] drivers/md: Utilize new kmap_thread()
 
- To: Coly Li <colyli@xxxxxxx>
 
- From: Ira Weiny <ira.weiny@xxxxxxxxx>
 
- Date: Sun, 11 Oct 2020 22:28:18 -0700
 
- Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>,	Thomas Gleixner <tglx@xxxxxxxxxxxxx>,	Ingo Molnar <mingo@xxxxxxxxxx>, Borislav Petkov <bp@xxxxxxxxx>,	Andy Lutomirski <luto@xxxxxxxxxx>,	Peter Zijlstra <peterz@xxxxxxxxxxxxx>,	Kent Overstreet <kent.overstreet@xxxxxxxxx>, x86@xxxxxxxxxx,	Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx>,	Dan Williams <dan.j.williams@xxxxxxxxx>,	Fenghua Yu <fenghua.yu@xxxxxxxxx>, linux-doc@xxxxxxxxxxxxxxx,	linux-kernel@xxxxxxxxxxxxxxx, linux-nvdimm@xxxxxxxxxxxx,	linux-fsdevel@xxxxxxxxxxxxxxx, linux-mm@xxxxxxxxx,	linux-kselftest@xxxxxxxxxxxxxxx, linuxppc-dev@xxxxxxxxxxxxxxxx,	kvm@xxxxxxxxxxxxxxx, netdev@xxxxxxxxxxxxxxx, bpf@xxxxxxxxxxxxxxx,	kexec@xxxxxxxxxxxxxxxxxxx, linux-bcache@xxxxxxxxxxxxxxx,	linux-mtd@xxxxxxxxxxxxxxxxxxx, devel@xxxxxxxxxxxxxxxxxxxx,	linux-efi@xxxxxxxxxxxxxxx, linux-mmc@xxxxxxxxxxxxxxx,	linux-scsi@xxxxxxxxxxxxxxx, target-devel@xxxxxxxxxxxxxxx,	linux-nfs@xxxxxxxxxxxxxxx, ceph-devel@xxxxxxxxxxxxxxx,	linux-ext4@xxxxxxxxxxxxxxx, linux-aio@xxxxxxxxx,	io-uring@xxxxxxxxxxxxxxx, linux-erofs@xxxxxxxxxxxxxxxx,	linux-um@xxxxxxxxxxxxxxxxxxx, linux-ntfs-dev@xxxxxxxxxxxxxxxxxxxxx,	reiserfs-devel@xxxxxxxxxxxxxxx,	linux-f2fs-devel@xxxxxxxxxxxxxxxxxxxxx, linux-nilfs@xxxxxxxxxxxxxxx,	cluster-devel@xxxxxxxxxx, ecryptfs@xxxxxxxxxxxxxxx,	linux-cifs@xxxxxxxxxxxxxxx, linux-btrfs@xxxxxxxxxxxxxxx,	linux-afs@xxxxxxxxxxxxxxxxxxx, linux-rdma@xxxxxxxxxxxxxxx,	amd-gfx@xxxxxxxxxxxxxxxxxxxxx, dri-devel@xxxxxxxxxxxxxxxxxxxxx,	intel-gfx@xxxxxxxxxxxxxxxxxxxxx, drbd-dev@xxxxxxxxxxxxxxxx,	linux-block@xxxxxxxxxxxxxxx, xen-devel@xxxxxxxxxxxxxxxxxxxx,	linux-cachefs@xxxxxxxxxx, samba-technical@xxxxxxxxxxxxxxx,	intel-wired-lan@xxxxxxxxxxxxxxxx
 
- Delivery-date: Mon, 12 Oct 2020 05:28:51 +0000
 
- Ironport-sdr: SG42Hhvir3Ps0qAEaYiWNHtylTRusWTN1QTivsXX9mt9Xzt89f6kwHoZn1aFWl5GmihnM+dZdh PchXazDAcDIg==
 
- Ironport-sdr: Awdi9Evv+UAQx0jH4ny/s7+Nxcmli85F+a73BOsSCHQvCG+q13xwJ2JLwUM5pKItlqpgm8qi5b o2XGvRLHUUbw==
 
- List-id: Xen developer discussion <xen-devel.lists.xenproject.org>
 
 
 
On Sat, Oct 10, 2020 at 10:20:34AM +0800, Coly Li wrote:
> On 2020/10/10 03:50, ira.weiny@xxxxxxxxx wrote:
> > From: Ira Weiny <ira.weiny@xxxxxxxxx>
> > 
> > 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 for the feedback.
I'm going to hold off making any changes until others weigh in.  FWIW, I kind
of like option 2 as well.  But there is already kmap_atomic() so it seemed like
kmap_XXXX() was more in line with the current API.
Thanks,
Ira
> 
> Thanks.
> 
> 
> Coly Li
> 
 
 
    
     |