From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751710AbdK1HWs (ORCPT ); Tue, 28 Nov 2017 02:22:48 -0500 Received: from mail.linuxfoundation.org ([140.211.169.12]:40210 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750842AbdK1HWq (ORCPT ); Tue, 28 Nov 2017 02:22:46 -0500 Date: Tue, 28 Nov 2017 08:22:50 +0100 From: Greg KH To: Mikulas Patocka Cc: Ingo Molnar , Peter Zijlstra , linux-kernel@vger.kernel.org Subject: Re: [PATCH] schedule: use unlikely() Message-ID: <20171128072250.GA10757@kroah.com> References: <20171125085644.GA1843@kroah.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.9.1 (2017-09-22) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Nov 27, 2017 at 07:05:22PM -0500, Mikulas Patocka wrote: > > > On Sat, 25 Nov 2017, Greg KH wrote: > > > On Mon, Nov 13, 2017 at 02:00:45PM -0500, Mikulas Patocka wrote: > > > A small patch for schedule(), so that the code goes straght in the common > > > case. > > > > > > Signed-off-by: Mikulas Patocka > > > > Was this a measurable difference? If so, great, please provide the > > numbers and how you tested in the changelog. If it can't be measured, > > then it is not worth it to add these markings > > It is much easier to make microoptimizations (such as using likely() and > unlikely()) than to measure their effect. > > If a programmer were required to measure performance every time he uses > likely() or unlikely() in his code, he wouldn't use them at all. If you can not measure it, you should not use it. You are forgetting about the testing that was done a few years ago that found that some huge percentage (80? 75? 90?) of all of these markings were wrong and harmful or did absolutely nothing. > > as the CPU/compiler almost always knows better. > > > > thanks, > > > > greg k-h > > The compiler assumes that pointers are usually not NULL - but in this > case, they are usually NULL. The compiler can't know better (unless > profile feedback is used). If you think so, great, but prove it, otherwise you are adding markup that is not needed or could be harmful. :) thanks, greg k-h