On Mon 27-11-17 15:26:54, jiang.biao2@xxxxxxxxxx wrote: > On Mon, Nov 27, 2017 at 02:27:20PM +0800, jiang.biao2@xxxxxxxxxx wrote:> > I agree with your concern. How about we take another way by > > > adding some warning in such case? such as, > > > freeable = shrinker->count_objects(shrinker, shrinkctl); > > > + if (unlikely(freeable < 0)) { > > > + pr_err("shrink_slab: %pF negative objects returned. freeable=%ld\n", > > > + shrinker->scan_objects, freeable); > > > + freeable = 0; //maybe not needed? > > > + } > > > if (freeable == 0) > > > return 0; > > > In this way, we would not break the API, but could alert user exception > > > with message, and make it more robust in such case. > > > > True but it would be a problem robust vs. effectivess tradeoff. > > Think about that everyone want to make thier code robust. > > It means they start to dump lots of defensive code so code start > > to look like complicated as well as binary bloating. > > So, whenever we add some more, we should think how effective > > the code I am putting? > > > > In this case, I'm skeptical, Sorry. But others might have different > > opinions. :) > > With all due respect. I still think the robustness is more important than > effectiveness in this case. :) This is a slow path so I wouldn't worry about the performance much. On the other hand I agree that the API is well documented so adding a warning is too defensive. We simply assume that the kernel running in the kernel is reasonable. So I would say, fix your code. -- Michal Hocko SUSE Labs -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>