From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-eopbgr30046.outbound.protection.outlook.com [40.107.3.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by lists.bufferbloat.net (Postfix) with ESMTPS id EEB7A3B29E for ; Wed, 12 Apr 2017 05:15:33 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=darbyshire-bryant.me.uk; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=Jr9lFG9pok8OfaVnl/5JPJ2e3ZUBMjwkITn1U3nDwqU=; b=qBbndSvAYFyr3h06J8PS55VMHes9F/k3s9r8XT22PtYxir4Vxf4nvUSDCCl+LGGT1GhpnLPiEDKiIhnPhAd71IJrK8dX9612dyVCNfNGLFjxi7CwP6Se0EMi/tD1lar0GPeVpa4FtN9O6hM1GMXKsOY3oMI4IKrnmLP8tpi+iko= Authentication-Results: lists.bufferbloat.net; dkim=none (message not signed) header.d=none; lists.bufferbloat.net; dmarc=none action=none header.from=darbyshire-bryant.me.uk; Received: from [IPv6:2a02:c7f:1220:bf20::a22b] (2a02:c7f:1220:bf20::a22b) by AM2PR07MB1026.eurprd07.prod.outlook.com (2a01:111:e400:8444::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1034.5; Wed, 12 Apr 2017 09:15:32 +0000 To: George Amanakis References: <1698783902.612018.1491919195146.ref@mail.yahoo.com> <1698783902.612018.1491919195146@mail.yahoo.com> From: Kevin Darbyshire-Bryant CC: Message-ID: <322beef3-fd84-144c-6718-795eff0e4435@darbyshire-bryant.me.uk> Date: Wed, 12 Apr 2017 10:15:29 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 In-Reply-To: <1698783902.612018.1491919195146@mail.yahoo.com> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [2a02:c7f:1220:bf20::a22b] X-ClientProxiedBy: DB6PR0201CA0041.eurprd02.prod.outlook.com (2603:10a6:4:3f::51) To AM2PR07MB1026.eurprd07.prod.outlook.com (2a01:111:e400:8444::23) X-MS-Office365-Filtering-Correlation-Id: 33811acf-0b57-4911-ad7d-08d4818478a5 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075); SRVR:AM2PR07MB1026; X-Microsoft-Exchange-Diagnostics: 1; AM2PR07MB1026; 3:GXdfTRk2HKqCOwrXjGzQhjXCTJ6E8wfqE1JsOMJyjCzDALiWk8nJIhWjFUuTweNcRM0sfTvj/L2C1zxHH1ADs3+UOuMyyaKuUAvBq29kYUsmELymlcziUYWlc7I7hZnr9TlLgWwxvH68fCzg/znplHvu+fjeKPKA6Jk07kYbVU2qx1NwgqZJ58ZtWAxXan8Fa9m2EqAsWa7qs8z7toLj8I9tMWw6BjQLxq8TH+SoOCtly/n8Qh0UA0E3Rk+52WzGwcwuxD9K2KFnPOl3zzVWWTM20S+yiKCK5Or+7Nzat8/snqEqLMvqNCuSQoKE9djp; 25:smRyy3pDLFm8TJxBHV+BPUlxNlQCkZtJg6bPNZ+PFFKKNdvEiPTU9XnLT2Q7HJPkVNin0773CFizqzHoBW8ktuBeTDcaIbInLxWNc/mcCatlg72oVl7U5E0TU1NjgmBSWH/roqVUBAkX1ZxqZz0DgWVfrF/9Kb0E+bIXpfgXGr1nhJhjMBKErBS7W28yFd4HEK8fuMIHmLP/pqLk91Nyp684ujKl90u1qE210hfr9oiXT3KnQOP4F5BiMGk2MBjPb9Rvpctgfz0i21eO1txrAoTgns5uDsnd7gCYhTAlHfY6D6aYqb6F28bxp2LPtCnW0t1Rrqvc2zHg3DKdqKhU9hfOEwsEaKPf7aSpfcWWTxPAn32nE5Nx8FCfJvDIH+NelsOHhqicC/UrRzZQ3XcOLWl+2oGewu2XeQHwvsPbhPilf6MBH5cQbVnkbvttHxrvBkXhcmzBfeNIU9Z5TFlu+w== X-Microsoft-Exchange-Diagnostics: 1; AM2PR07MB1026; 31:7heAaUq/Y5+Q4iv6J8dK68/PTrugfpvwNRyKyFGgTpQ2+yTmZI+RRQ8duJQuU8RphEegdt5EPbga44NaRyqsXQzYKZxKhVu8YyXDO2hijghNPn+oIaYgrHdxuo/4/o0ViVCHNTE2JNsDlIxbkzR8fZJiyS5N+/+WfwXmas1tTYz0C3aAbh9a1e93EPF8wvXrNh68kzVoOhCFL01lQDt859eZjk+z94zfjp2osPxORNLfF14v3sx+9LsZfJrPJw4SkQjWg9DGEyMWvQSNi63+vQ== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(601004)(2401047)(8121501046)(5005006)(93006095)(93001095)(3002001)(10201501046)(6041248)(20161123560025)(20161123562025)(20161123564025)(20161123555025)(2016111802025)(201703131423075)(201703061421075)(6043046)(6072148); SRVR:AM2PR07MB1026; BCL:0; PCL:0; RULEID:; SRVR:AM2PR07MB1026; X-Microsoft-Exchange-Diagnostics: 1; AM2PR07MB1026; 4:z+PgffsaYh7dHV9ADJJ5/biLWqoUt3GTjXoX820AAX6yqFqorJVMKQUIOox4g4MFI+ZFm8khOOB/x5jQzwhZ+VWdLOwn5jUhZaiKSIwszHAIUDHe3cBbhdkToqK2ezQ4ED/t+Azx2xmi/ThquunIyltrVEgJ6c7GsnYDyUdyiyRk3ocWuKqiPh3/O79oYz711O66MA4NDTNv/qA2pIBAilLOhCBLHxQbCW9oBVt/cifyj3eHrmiu6tC6yg1wia6VZJg3onSeNUDWRnUGoX4z4Fl9A2KVoYjI20erAntB2QA50VCzlqPRmsr+WHee9ptgTl/b3Wycp4CpFP/tvL11T6DU+RIqpzAiv0Jr00dhAUMLCawFFVjzhxzTpUR7YQ4fSDmhrfefLsYFpZ5zYfGBcxEl4+K/6C69w6xyZUB+Gov10BAfyRrlRX6GmJ47b95Sl1Tn3AR5pa2vYp4Iupp0frRD53ZIBAvlvrHjyY9i4L/LDp/wbQ1O6ChOw4R699VYCEhgpdMnHIWs21iH8QFeEuRHJojTWepDBOYY0P21Vv3PpZ3dZy1/6oR3bz8tsrw1SFYboAYU6lv8HcCdSdulTX+rH96zo9U+gESn01XKvR8aHuRnhIgKU36dTSv/gZKYCJd0qgKKzzOYJ8FqgwjE88z7zoDCEKsR/bRkyQwmxXh8c4vsdOZxC+nY2rBISPakOYUBLuzmZPtp8m10kFPuicvONmY2TNQcXYKDdSrFFFw= X-Forefront-PRVS: 027578BB13 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(39400400002)(39450400003)(24454002)(74482002)(6116002)(6246003)(110136004)(54356999)(76176999)(53936002)(42186005)(50986999)(2906002)(86362001)(4326008)(33646002)(2950100002)(50466002)(42882006)(8676002)(6666003)(81166006)(25786009)(64126003)(6916009)(53546009)(305945005)(230700001)(38730400002)(4001350100001)(65956001)(189998001)(47776003)(2521001)(83506001)(31696002)(7736002)(23676002)(229853002)(6486002)(36756003)(31686004)(5660300001); DIR:OUT; SFP:1101; SCL:1; SRVR:AM2PR07MB1026; H:[IPv6:2a02:c7f:1220:bf20::a22b]; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtBTTJQUjA3TUIxMDI2OzIzOkRCRkVRRFArVTRlZDlIRytxQzF6Kzk0S3VB?= =?utf-8?B?ekIrMktZTWdHU2lwQy8rbzV1OXZXUGhIeklzQzVFTTRaYWQ1NXRiK0N0N1p2?= =?utf-8?B?S2ZWVDZ1UW5sRnpGMGQyR0tjdVdWMmRhRFJySHdUTEI1TmFGN0t3bXBrZkpE?= =?utf-8?B?NnZhVHRpV083WU1WVDcwaW10bWNoQkVxczNpN1ZRTUt4MGFSYWF6V1JqR2k5?= =?utf-8?B?SFVlekJpYW5zNElBSlFYUXJGWE01WmRCc1MzRUphUUxaQzdjdTdNZ2dzUm1D?= =?utf-8?B?aVBBenZZd3RjNjNJTjhxTGJuYXpzZHlvMmE1M1dKcXlsNFY5Y1lBR3BtQXly?= =?utf-8?B?c2ZUSkJ1TFVRaFByZm9Vc2FsMHJMVmQwcjhpdXVMVzZJc2ZKbUlVbk5YMFpr?= =?utf-8?B?UHAxMytiMFhrdlQxOWVaNzlmU2JjSGRkNDR1bDU4alRCc0lOS1IzSFh3bVYx?= =?utf-8?B?WmZUVWNubEt3MVlVU1Z3aE5hTlNLWGNJWE9INzNySHdzRzhuYkpKb2xUZnBO?= =?utf-8?B?SEg0LzRpa210L2pabi9yV0xRaUQvMEFIN2EzTi9relJnUk84NE1EZkNCREUr?= =?utf-8?B?KzdBS3Z0QzlLNWkweUI4Rkhxc0hYOWIxWUhMSm9JV3JKbjI5Z0Q2MUsyZzFi?= =?utf-8?B?d1p0S1RJamhuUnBzbThqUGxUN1Z2aXZBcGxTOEpES0pRSmFIZU90aE1CRm00?= =?utf-8?B?cUhnNU9iVmt1NlF0d28ySGhwcFNUeUtxeXA0YjJ0Tzg3ZGg1bjA0V2FIZ2Yx?= =?utf-8?B?NmZpRVplUVdmWjErcXZOdm5BQVFxNlBSUG1PZ1ZJVXgyQ0x6Q3VvS0dtaWk0?= =?utf-8?B?UGlrVE9GWmxmUGx1bGgzeC9kdGNzMmo3QTltVUtIVGtjUG5LVWpYQmI2bHVO?= =?utf-8?B?QVoySWhUOExWNWpqNjg2QXF5YzZjOHBFSExreVhWZDFmTUFOaEZwdEw5K1Nu?= =?utf-8?B?UWwxdGNMeVhnTG9LQU03QlFDbDNER0cxS2lLTFJsdkh4WHo1WjgremVEdXpF?= =?utf-8?B?cmlwRFpKRXZyU2p3NityRHJVWTRDNzV4UlRRMEorTFp3UTRlV2NNa1FNL3lQ?= =?utf-8?B?c0x3SmNlbm1uRWxYdFVZZHNaVFlFbW5oUTZiejZOekw0YXYrT3dLOHB3T1pF?= =?utf-8?B?TTVFUGNQVGo2eEZVZWVHKzNTUVA1dkRkcTZiV3grM0lQUFd0MTQwSGJra3pn?= =?utf-8?B?SWk2MzBHN1lsOG1oajlrdjhHZ1VlSVVqdzFHN3MrSy9Fc1hRUXgxdi9EbUYy?= =?utf-8?B?eWIxc0Q3V0dVUFdmTzhGc08rS1M0MHp1aG1ZYVFMWkljQXZQUWVvTmZ1Q3Ar?= =?utf-8?B?ZFZ6aVBBVzA0SnpQMk1BSFV2bngwdDlERDc5Y3RrTnlpWEN3M1h6K1c1VjZo?= =?utf-8?B?b3I0Q3hPNTJWekRsTFhZdktkWHdIQXpJM0gxTlFISjIweHpjb1Jsd0pYbEdr?= =?utf-8?B?dnJ1WlRaeFlGM0lyZW5lVmpuUTJxM1NuRjlJOXVGQjl2RmNxdStkajlRYjV2?= =?utf-8?Q?4vod+pTABk9sgYiCwFxeizW3U=3D?= X-Microsoft-Exchange-Diagnostics: 1; AM2PR07MB1026; 6:zvWTCeU4jPDTZSmW5P6usxDbNs4zRzYL8cMFxpfaDbQFAALpQadQIO7HHxOkQsLHPB3+wnZUrNmS0BTSE36CTnbQb8DKzn8pLi/4aYsiVonjC9EOIcxDOyfiWCBP3e7DQWcR8CkNPvEWbNEoC5/hOqsQx6eLr0t4Q2cFVeb1eO0895zMiD0XwFioPPVYnQAArnVuxo3VMYIvOorsW9iEO3GvRtSO6/XO42U0JSPA0Po9BxQbI0hHWqlQYuSitSr21N2+pgb8FT+jPUgP5WQh/kzGQNT2YthCSLYCg8kIplZdetWlK2MjGqxI8r3QHSDdQMwrXG8sldu46d83ldPW1xCNJCoaSBiI3gOgFw5QkbPbzk+R6L7NYMkTNrfV+MyPvXbwMc6IfDa5XJa+D/JSs8B/hG7N4clGNlAZfv4X2yi4KOgqqgQrqWgx3USWQVRpt/E/ez8sIwiQkB1T9PsUJA==; 5:cPVUsA8BVNt2wBcRFtup4FymQHkHN7WPB3EGp+pRQwEXq83gMJKDIoD7LBpJNAIw1uwfbIUxFySzyPh6dlF+WPoKVmMMU6mho7Orhuz9f3MLsNSNYRG5y9aDu3FCO3hBB+2gFTGU/HEgyBqWKyQQog==; 24:yFXS3MFkwehDMMf5uCTsFVYDO3B6puJKXfrMi8wYmmujTKpqEWtaUlB53yxfNj2kSzGbHs9dyTjx2L1DpmAz2WdmOiC7YaiYaY2CNnwFbqc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; AM2PR07MB1026; 7:giavlrzsquT1RFOwHTAyhdPDxyNkwMBcRExi00ry71QpBuJD1UHefFjog6u6/jlNLCXCv/6CYddF0Gy0GCo5/sLLvQ+lr//DSCeamBUrnlapTxeUazYptWTPZypJZMy7nA37RSge8UCn0Dlm5TJezo4WMyQ6xPQbB2OZQJ5Yt22MJ1UW6XdPcD1Rt0J6E4RU/cZr6oyvBXG9TogiAZVO6bVWNXyqPcua5N13L3Nf8QlWNz+thBvtBgdoiXu3XFclcW5Tt3PRBbGE6tROWTkjWtZjluJnZLeuWKYyCWSrSPZRtH9mZvea4527KhKe6/if2LPwMIxBlwCN7TXXKe/jHA== X-OriginatorOrg: darbyshire-bryant.me.uk X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Apr 2017 09:15:32.4111 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM2PR07MB1026 Subject: Re: [Cake] Choosing a tin to work on X-BeenThere: cake@lists.bufferbloat.net X-Mailman-Version: 2.1.20 Precedence: list List-Id: Cake - FQ_codel the next generation List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 12 Apr 2017 09:15:34 -0000 On 11/04/17 14:59, George Amanakis wrote: > Hi Jonathan, > > I have some questions regarding the algorithm to choose a tin to dequeue > from in sch_cake.c: > -----------8<------------ > int oi, best_tin=0; > s64 best_time = 0xFFFFFFFFFFFFUL; > > for(oi=0; oi < q->tin_cnt; oi++) { > int tin = q->tin_order[oi]; > b = q->tins + tin; > if((b->sparse_flow_count + b->bulk_flow_count) > 0) { > s64 tdiff = b->tin_time_next_packet - now; > if(tdiff <= 0 || tdiff <= best_time) { > best_time = tdiff; > best_tin = tin; > } > } > } > -----------8<------------ > > 1) best_time is defined as a positive signed integer, this equals to 78 > hours if I did the calculations right. Why did you choose this? Did you > mean to define it as "-1"? > 2) If you meant to define it as "-1", the condition "tdiff <= best_time" > would not matter. I can see no case where "tdiff > 0" and "tdiff <= > best_time". > > Could you shed some light into this? > > Thank you, > George I'll try to answer this based on a vague bit of understanding...and then Jonathan can shoot me down as well :-) So the 'best_time' is signed because we can have a packet in a tin that is not yet due to be sent (a positive result...ie. we have got here early) and/or we can have a tin that is due now/overdue (a zero/negative result, we've got here late) The complication is that we can have multiple tins overdue, so we want the highest priority *and* least overdue (least late) tin - this is the reason for searching in tin_order[oi] and as a result tdiff can be <=0 and bigger than best_time. best_time is initialised to the 'most early' time possible. Kevin (awaits to be shot at :-) )