From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751481AbbGMGwY (ORCPT ); Mon, 13 Jul 2015 02:52:24 -0400 Received: from mail-pa0-f44.google.com ([209.85.220.44]:35253 "EHLO mail-pa0-f44.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751354AbbGMGwW (ORCPT ); Mon, 13 Jul 2015 02:52:22 -0400 Date: Mon, 13 Jul 2015 15:52:53 +0900 From: Sergey Senozhatsky To: Christoph Hellwig Cc: Sergey Senozhatsky , Andrew Morton , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Sergey Senozhatsky Subject: Re: [PATCH 0/2] mm/shrinker: make unregister_shrinker() less fragile Message-ID: <20150713065253.GA811@swordfish> References: <1436583115-6323-1-git-send-email-sergey.senozhatsky@gmail.com> <20150711100232.GA4607@infradead.org> <20150712024732.GA787@swordfish> <20150713063341.GA24167@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20150713063341.GA24167@infradead.org> User-Agent: Mutt/1.5.23+89 (0255b37be491) (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On (07/12/15 23:33), Christoph Hellwig wrote: > On Sun, Jul 12, 2015 at 11:47:32AM +0900, Sergey Senozhatsky wrote: > > Yes, but the main difference here is that it seems that shrinker users > > don't tend to treat shrinker registration failures as fatal errors and > > just continue with shrinker functionality disabled. And it makes sense. > > > > (copy paste from https://lkml.org/lkml/2015/7/9/751) > > > > I hearily disagree. It's not any less critical than other failures. Why? In some sense, shrinker callbacks are just a way to be nice. No one writes a driver just to be able to handle shrinker calls. An ability to react to those calls is just additional option; it does not directly affect or limit driver's functionality (at least, it really should not). > The right way forward is to handle register failure properly. In other words, to (a) keep a flag to signify that register was not successful or (b) look at ->shrinker.list.next or ->nr_deferred or (c) treat register failures as critical errors. (I sort of disagree with you here). -ss