________________________________________ 发件人: Uladzislau Rezki <ure...@gmail.com> 发送时间: 2021年1月26日 22:07 收件人: Zhang, Qiang 抄送: Uladzislau Rezki; Paul E. McKenney; r...@vger.kernel.org; linux-kernel@vger.kernel.org 主题: Re: 回复: 回复: [PATCH] rcu: Release per-cpu krcp page cache when CPU going offline
> > On Fri, Jan 22, 2021 at 01:44:36AM +0000, Zhang, Qiang wrote: > > > > > > ________________________________________ > > 发件人: Uladzislau Rezki <ure...@gmail.com> > > 发送时间: 2021年1月22日 4:26 > > 收件人: Zhang, Qiang > > 抄送: Paul E. McKenney; r...@vger.kernel.org; linux-kernel@vger.kernel.org; > > ure...@gmail.com > > 主题: Re: [PATCH] rcu: Release per-cpu krcp page cache when CPU going offline > > >Hello, Qiang, > > > > > On Thu, Jan 21, 2021 at 02:49:49PM +0800, qiang.zh...@windriver.com wrote: > > > > From: Zqiang <qiang.zh...@windriver.com> > > > > > > > > If CPUs go offline, the corresponding krcp's page cache can > > > > not be use util the CPU come back online, or maybe the CPU > > > > will never go online again, this commit therefore free krcp's > > > > page cache when CPUs go offline. > > > > > > > > Signed-off-by: Zqiang <qiang.zh...@windriver.com> > > > > > >Do you consider it as an issue? We have 5 pages per CPU, that is 20480 > > >bytes. > > > > > > > Hello Rezki > > > > In a multi CPUs system, more than one CPUs may be offline, there are more > > than 5 pages, and these offline CPUs may never go online again or in the > > process of CPUs online, there are errors, which lead to the failure of > > online, these scenarios will lead to the per-cpu krc page cache will never > > be released. > > > >Thanks for your answer. I was thinking more about if you knew some >platforms > >which suffer from such extra page usage when CPU goes offline. Any >issues > >your platforms or devices run into because of that. > > > >So i understand that if CPU goes offline the 5 pages associated with it >are > >unused until it goes online back. > > I agree with you, But I still want to talk about what I think > > My understanding is that when the CPU is offline, the pages is not > accessible, beacuse we don't know when this CPU will > go online again, so we best to return these page to the buddy system, > when the CPU goes online again, we can allocate page from the buddy > system to fill krcp's page cache. maybe you may think that this memory > is small and don't need to. > >BTW, we can release the caches via shrinker path instead, what is more makes >sense to me. We already have a callback, that frees pages when a page allocator >asks for it. I think in that case it would be fair to return it to the buddy >system. It happens under low memory condition I agree. it can be done in shrink callback, can release the currently existing per-cpu page cache. Thanks Qiang > or can be done manually to flush >system caches: > >echo 3 > /proc/sys/vm/drop_caches > >What do you think? > >-- >Vlad Rezki