From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756689AbbGGJKm (ORCPT ); Tue, 7 Jul 2015 05:10:42 -0400 Received: from casper.infradead.org ([85.118.1.10]:49308 "EHLO casper.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754092AbbGGJKf (ORCPT ); Tue, 7 Jul 2015 05:10:35 -0400 Date: Tue, 7 Jul 2015 11:10:29 +0200 From: Peter Zijlstra To: "Gaohaifeng (A)" Cc: "linux-kernel@vger.kernel.org" , "stephan.baerwolf@tu-ilmenau.de" , "Huangjian (J)" Subject: Re: sched: about vruntime overflow Message-ID: <20150707091029.GP3644@twins.programming.kicks-ass.net> References: <47CEA9C0E570484FBF22EF0D7EBCE5B534B17A98@szxema505-mbs.china.huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <47CEA9C0E570484FBF22EF0D7EBCE5B534B17A98@szxema505-mbs.china.huawei.com> User-Agent: Mutt/1.5.21 (2012-12-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Jul 07, 2015 at 08:05:50AM +0000, Gaohaifeng (A) wrote: > int main() > { > unsigned char a,b; > a=251; > b=254; > b +=5; // b will overflow > printf("a=%u \n",a); > printf("b=%u \n",b); > printf("(a-b<0)=%d\n",(a-b)<0); If you look at entity_before() you'll notice that the correct statement would be: printf("(a-b<0)=%d\n",(signed char)(a-b)<0); > printf("(a-b<0)=%d\n",((unsigned char)(a-250)-(unsigned char)(b-250)<0)); > return 0; > }