From owner-freebsd-arch@freebsd.org Mon Aug 21 13:54:03 2017 Return-Path: Delivered-To: freebsd-arch@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id EA6E9DDCFA9 for ; Mon, 21 Aug 2017 13:54:03 +0000 (UTC) (envelope-from eliza.wilson@collabratesuite.com) Received: from mail-pg0-x248.google.com (mail-pg0-x248.google.com [IPv6:2607:f8b0:400e:c05::248]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client CN "smtp.gmail.com", Issuer "Google Internet Authority G2" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C2B3370B8A for ; Mon, 21 Aug 2017 13:54:03 +0000 (UTC) (envelope-from eliza.wilson@collabratesuite.com) Received: by mail-pg0-x248.google.com with SMTP id t193so55208232pgc.0 for ; Mon, 21 Aug 2017 06:54:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=collabratesuite-com.20150623.gappssmtp.com; s=20150623; h=mime-version:message-id:date:subject:from:to; bh=Qa02a9kBA44yhbdV7IYsWOK51grxvNmSI0PYe9zaUiI=; b=XzQ9Rg+1CzxOWxbJoF3kB1WOWDrcU4MCCNOdBKpXGbggWYPQaMzTfjTZeyPWmVLLpl z3PnMaksVJMuJxMc8Ptz+WfBEoYv7fWA5OQRueMMII+XuHH23BlupcKcYd+gjYuQsxcy Oe3NYN2p02C2g8rl0Gz2V/WiGxQQ7tFTBlI4o4QSSEcqbwKPNikvRES1xcw6Sh0AS96t POtNsgyO9AcfMVPtgc9usKc06cRdykb/bcQkttsNLJfHBeI6q3L7OkWumRFNFUrEqlqb pbf580qg6Lkg5buKrzsnTUCASjJdmWPpCQaY6+wmVkN+KsWjlx7spXn77ZvSuJFsFls+ mFsQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:message-id:date:subject:from:to; bh=Qa02a9kBA44yhbdV7IYsWOK51grxvNmSI0PYe9zaUiI=; b=A2MV/34B0Zqg7iOj7oJX38BgBWmkf6zo6ICfUO55t5lXBgfoo2fiEsIJuKek3jnWvJ gh4ohYwSfy6zRdGtkPCxCTj/TZgmiM+oVYS3Ya8k1H/gJlgnoJ3hoLERad5BETkfuO8U 9pJyHkXqNYjAN0qGTSqajSKPz/R2y16rdGF+IKSkSTqpX/pYfCH+1m55kEvCTMyNt4lx nC2PFl0VCfnCs7xaUeL8TFUJKBllnCPWyz9R4O0APRNLhjMAAX5yzEUDlrNlRykd7/XK KdZufwYS/VnA/nniG9yvfSOs58rwShL6ltOFZ3L1kOYYI92j0zvc7kpamLL8bKI6wq5P MEeQ== X-Gm-Message-State: AHYfb5iUZUouiGlBalBziWoXoRINyAk97p8ppT7NLhUCjcId4AhFG/10 BvkzEDLhgwqBcsr/sAS69JQp/ajxhqs9 MIME-Version: 1.0 X-Received: by 10.98.64.148 with SMTP id f20mr254261pfd.14.1503323643340; Mon, 21 Aug 2017 06:54:03 -0700 (PDT) Message-ID: <001a11499190be6f71055743cf10@google.com> Date: Mon, 21 Aug 2017 13:54:03 +0000 Subject: Gitex Technology Week - Exhibitors List From: eliza.wilson@collabratesuite.com To: freebsd-arch@freebsd.org Content-Type: text/plain; charset="UTF-8"; format=flowed; delsp=yes Content-Transfer-Encoding: base64 X-Content-Filtered-By: Mailman/MimeDel 2.1.23 X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Aug 2017 13:54:04 -0000 PGRpdiBkaXI9Imx0ciI+PHAgIA0KY2xhc3M9ImdtYWlsLW1fLTYzOTAyMDAyMjY4MTQ0MjUzOTVn bWFpbC1tXzYxNjQyNzEwMTE3MzIxNTU2OTZnbWFpbC1tXy0yMTM1MjA3NzA1OTU1NzgwNDEzZ21h aWwtbV8tMTkyMDE2MTk2NjQ4NTMzNzQ1OG1fLTQ4MjI3NDE3MjkzNDU2NDEzNTRnbWFpbC1tXy05 MDc3MDc2MzQwMDIyNjcwNDlnbWFpbC1tXy0xODY5NzA0NzMyMTQwMDA2OTcwZ21haWwtbV8tMzA5 MzIxMzk3MzEwNjQxMTIyMGdtYWlsLU1zb05vU3BhY2luZyI+SGk8L3A+PHAgIA0KY2xhc3M9Imdt YWlsLW1fLTYzOTAyMDAyMjY4MTQ0MjUzOTVnbWFpbC1tXzYxNjQyNzEwMTE3MzIxNTU2OTZnbWFp bC1tXy0yMTM1MjA3NzA1OTU1NzgwNDEzZ21haWwtbV8tMTkyMDE2MTk2NjQ4NTMzNzQ1OG1fLTQ4 MjI3NDE3MjkzNDU2NDEzNTRnbWFpbC1tXy05MDc3MDc2MzQwMDIyNjcwNDlnbWFpbC1tXy0xODY5 NzA0NzMyMTQwMDA2OTcwZ21haWwtbV8tMzA5MzIxMzk3MzEwNjQxMTIyMGdtYWlsLU1zb05vU3Bh Y2luZyI+QmVsaWV2ZSAgDQpteSBlbWFpbCBmaW5kcyB5b3Ugd2VsbDwvcD48cCAgDQpjbGFzcz0i Z21haWwtbV8tNjM5MDIwMDIyNjgxNDQyNTM5NWdtYWlsLW1fNjE2NDI3MTAxMTczMjE1NTY5Nmdt YWlsLW1fLTIxMzUyMDc3MDU5NTU3ODA0MTNnbWFpbC1tXy0xOTIwMTYxOTY2NDg1MzM3NDU4bV8t NDgyMjc0MTcyOTM0NTY0MTM1NGdtYWlsLW1fLTkwNzcwNzYzNDAwMjI2NzA0OWdtYWlsLW1fLTE4 Njk3MDQ3MzIxNDAwMDY5NzBnbWFpbC1tXy0zMDkzMjEzOTczMTA2NDExMjIwZ21haWwtTXNvTm9T cGFjaW5nIj5JICANCmZvdW5kIHlvdXIgY29tcGFuaWVzIGxpc3RlZCBhcyBTcG9uc29ycyBhbmQg RXhoaWJpdG9ycyBhdCBHaXRleCBUZWNobm9sb2d5ICANCldlZWvCoGFuZCB0aG91Z2h0IHlvdSB3 b3VsZCBiZSBpbnRlcmVzdGVkIGluIHJlY2VpdmluZyBhdHRlbmRlZXMgbGlzdCBvZiB0aGUgIA0K dXBjb21pbmcgc2hvdy48L3A+PHAgIA0KY2xhc3M9ImdtYWlsLW1fLTYzOTAyMDAyMjY4MTQ0MjUz OTVnbWFpbC1tXzYxNjQyNzEwMTE3MzIxNTU2OTZnbWFpbC1tXy0yMTM1MjA3NzA1OTU1NzgwNDEz Z21haWwtbV8tMTkyMDE2MTk2NjQ4NTMzNzQ1OG1fLTQ4MjI3NDE3MjkzNDU2NDEzNTRnbWFpbC1t Xy05MDc3MDc2MzQwMDIyNjcwNDlnbWFpbC1tXy0xODY5NzA0NzMyMTQwMDA2OTcwZ21haWwtbV8t MzA5MzIxMzk3MzEwNjQxMTIyMGdtYWlsLU1zb05vU3BhY2luZyI+VGl0bGVzOiAgDQpDRU9zLCBD Rk9zLCBDT09zLCBDSU9zLCBDVE9zLCBTVlBzLCBWUHMsIEhlYWQsIERpcmVjdG9ycywgTWFuYWdl cnMgIA0KRXRjLjwvcD48cCAgDQpjbGFzcz0iZ21haWwtbV8tNjM5MDIwMDIyNjgxNDQyNTM5NWdt YWlsLW1fNjE2NDI3MTAxMTczMjE1NTY5NmdtYWlsLW1fLTIxMzUyMDc3MDU5NTU3ODA0MTNnbWFp bC1tXy0xOTIwMTYxOTY2NDg1MzM3NDU4bV8tNDgyMjc0MTcyOTM0NTY0MTM1NGdtYWlsLW1fLTkw NzcwNzYzNDAwMjI2NzA0OWdtYWlsLW1fLTE4Njk3MDQ3MzIxNDAwMDY5NzBnbWFpbC1tXy0zMDkz MjEzOTczMTA2NDExMjIwZ21haWwtTXNvTm9TcGFjaW5nIj5JbmZvcm1hdGlvbiAgDQpGaWVsZHM6 IE5hbWUsIENvbXBhbnkmIzM5O3MgTmFtZSwgUGhvbmUgTnVtYmVyLCBGYXggTnVtYmVyLCBKb2Ig VGl0bGUsICANCkVtYWlsIGFkZHJlc3MsIENvbXBsZXRlIE1haWxpbmcgQWRkcmVzcywgQ29tcGFu eSBSZXZlbnVlIFNpemUsIEVtcGxveWVlICANClNpemUsIFdlYiBhZGRyZXNzIGV0Yy48L3A+PHAg IA0KY2xhc3M9ImdtYWlsLW1fLTYzOTAyMDAyMjY4MTQ0MjUzOTVnbWFpbC1tXzYxNjQyNzEwMTE3 MzIxNTU2OTZnbWFpbC1tXy0yMTM1MjA3NzA1OTU1NzgwNDEzZ21haWwtbV8tMTkyMDE2MTk2NjQ4 NTMzNzQ1OG1fLTQ4MjI3NDE3MjkzNDU2NDEzNTRnbWFpbC1tXy05MDc3MDc2MzQwMDIyNjcwNDln bWFpbC1tXy0xODY5NzA0NzMyMTQwMDA2OTcwZ21haWwtbV8tMzA5MzIxMzk3MzEwNjQxMTIyMGdt YWlsLU1zb05vU3BhY2luZyI+R2VvZ3JhcGh5ICANCldlIENvdmVyOiBOb3J0aCBBbWVyaWNhLCBM YXRpbiBBbWVyaWNhLCBFTUVBLCBhbmQgQVBBQy48L3A+PHAgIA0KY2xhc3M9ImdtYWlsLW1fLTYz OTAyMDAyMjY4MTQ0MjUzOTVnbWFpbC1tXzYxNjQyNzEwMTE3MzIxNTU2OTZnbWFpbC1tXy0yMTM1 MjA3NzA1OTU1NzgwNDEzZ21haWwtbV8tMTkyMDE2MTk2NjQ4NTMzNzQ1OG1fLTQ4MjI3NDE3Mjkz NDU2NDEzNTRnbWFpbC1tXy05MDc3MDc2MzQwMDIyNjcwNDlnbWFpbC1tXy0xODY5NzA0NzMyMTQw MDA2OTcwZ21haWwtbV8tMzA5MzIxMzk3MzEwNjQxMTIyMGdtYWlsLU1zb05vU3BhY2luZyI+UGxl YXNlICANCnJldmlldyBhbmQgbGV0IG1lIGtub3cgeW91ciB0aG91Z2h0cyBhbmQgSSB3aWxsIGdl dCBiYWNrIHRvIHlvdSB3aXRoIG1vcmUgIA0KaW5mb3JtYXRpb24gcmVnYXJkaW5nIGNvdW50cyBh bmQgcHJpY2luZyBmb3IgdGhlIHNhbWUuPC9wPjxwICANCmNsYXNzPSJnbWFpbC1tXy02MzkwMjAw MjI2ODE0NDI1Mzk1Z21haWwtbV82MTY0MjcxMDExNzMyMTU1Njk2Z21haWwtbV8tMjEzNTIwNzcw NTk1NTc4MDQxM2dtYWlsLW1fLTE5MjAxNjE5NjY0ODUzMzc0NThtXy00ODIyNzQxNzI5MzQ1NjQx MzU0Z21haWwtbV8tOTA3NzA3NjM0MDAyMjY3MDQ5Z21haWwtbV8tMTg2OTcwNDczMjE0MDAwNjk3 MGdtYWlsLW1fLTMwOTMyMTM5NzMxMDY0MTEyMjBnbWFpbC1Nc29Ob1NwYWNpbmciPkF3YWl0ICAN CnlvdXIgcmVzcG9uc2UhPC9wPjxwICANCmNsYXNzPSJnbWFpbC1tXy02MzkwMjAwMjI2ODE0NDI1 Mzk1Z21haWwtbV82MTY0MjcxMDExNzMyMTU1Njk2Z21haWwtbV8tMjEzNTIwNzcwNTk1NTc4MDQx M2dtYWlsLW1fLTE5MjAxNjE5NjY0ODUzMzc0NThtXy00ODIyNzQxNzI5MzQ1NjQxMzU0Z21haWwt bV8tOTA3NzA3NjM0MDAyMjY3MDQ5Z21haWwtbV8tMTg2OTcwNDczMjE0MDAwNjk3MGdtYWlsLW1f LTMwOTMyMTM5NzMxMDY0MTEyMjBnbWFpbC1Nc29Ob1NwYWNpbmciPlJlZ2FyZHMsPC9wPjxwICAN CmNsYXNzPSJnbWFpbC1tXy02MzkwMjAwMjI2ODE0NDI1Mzk1Z21haWwtbV82MTY0MjcxMDExNzMy MTU1Njk2Z21haWwtbV8tMjEzNTIwNzcwNTk1NTc4MDQxM2dtYWlsLW1fLTE5MjAxNjE5NjY0ODUz Mzc0NThtXy00ODIyNzQxNzI5MzQ1NjQxMzU0Z21haWwtbV8tOTA3NzA3NjM0MDAyMjY3MDQ5Z21h aWwtbV8tMTg2OTcwNDczMjE0MDAwNjk3MGdtYWlsLW1fLTMwOTMyMTM5NzMxMDY0MTEyMjBnbWFp bC1Nc29Ob1NwYWNpbmciPkVsaXphICANCldpbHNvbjwvcD48cCAgDQpjbGFzcz0iZ21haWwtbV8t NjM5MDIwMDIyNjgxNDQyNTM5NWdtYWlsLW1fNjE2NDI3MTAxMTczMjE1NTY5NmdtYWlsLW1fLTIx MzUyMDc3MDU5NTU3ODA0MTNnbWFpbC1tXy0xOTIwMTYxOTY2NDg1MzM3NDU4bV8tNDgyMjc0MTcy OTM0NTY0MTM1NGdtYWlsLW1fLTkwNzcwNzYzNDAwMjI2NzA0OWdtYWlsLW1fLTE4Njk3MDQ3MzIx NDAwMDY5NzBnbWFpbC1tXy0zMDkzMjEzOTczMTA2NDExMjIwZ21haWwtTXNvTm9TcGFjaW5nIj48 YnI+PC9wPjxwICANCmNsYXNzPSJnbWFpbC1tXy02MzkwMjAwMjI2ODE0NDI1Mzk1Z21haWwtbV82 MTY0MjcxMDExNzMyMTU1Njk2Z21haWwtbV8tMjEzNTIwNzcwNTk1NTc4MDQxM2dtYWlsLW1fLTE5 MjAxNjE5NjY0ODUzMzc0NThtXy00ODIyNzQxNzI5MzQ1NjQxMzU0Z21haWwtbV8tOTA3NzA3NjM0 MDAyMjY3MDQ5Z21haWwtbV8tMTg2OTcwNDczMjE0MDAwNjk3MGdtYWlsLW1fLTMwOTMyMTM5NzMx MDY0MTEyMjBnbWFpbC1Nc29Ob1NwYWNpbmciPlRvICANCk9wdCBPdXQsIHBsZWFzZSBhbnN3ZXIg d2l0aCBFeGNsdWRlIGluIHRoZSBTdWJqZWN0IExpbmUuPC9wPjwvZGl2Pg0KPHA+Jm5ic3A7PC9w PjxhIHN0eWxlPSdkaXNwbGF5OiBibG9jazsgbWFyZ2luOiAzMnB4IDAgNDBweCAwOyBwYWRkaW5n OiAgDQoxMHB4OyBmb250LXNpemU6IDFlbTsgdGV4dC1hbGlnbjogY2VudGVyOyBib3JkZXI6IDA7 IGJvcmRlci10b3A6IDFweCBzb2xpZCAgDQpncmF5OyAnIGhyZWY9J2h0dHBzOi8vZ29vLmdsLzJr c2RSdic+cG93ZXJlZCBieSBHU00uIEZyZWUgbWFpbCBtZXJnZSBhbmQgIA0KZW1haWwgbWFya2V0 aW5nIHNvZnR3YXJlIGZvciBHbWFpbC48L2E+DQo= From owner-freebsd-arch@freebsd.org Wed Aug 23 15:04:57 2017 Return-Path: Delivered-To: freebsd-arch@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3D72DDE9400 for ; Wed, 23 Aug 2017 15:04:57 +0000 (UTC) (envelope-from truckman@FreeBSD.org) Received: from gw.catspoiler.org (unknown [IPv6:2602:304:b010:ef20::f2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "gw.catspoiler.org", Issuer "gw.catspoiler.org" (not verified)) by mx1.freebsd.org (Postfix) with ESMTPS id 1C86D73E01 for ; Wed, 23 Aug 2017 15:04:57 +0000 (UTC) (envelope-from truckman@FreeBSD.org) Received: from FreeBSD.org (mousie.catspoiler.org [192.168.101.2]) by gw.catspoiler.org (8.15.2/8.15.2) with ESMTP id v7NF4nYe035934 for ; Wed, 23 Aug 2017 08:04:53 -0700 (PDT) (envelope-from truckman@FreeBSD.org) Message-Id: <201708231504.v7NF4nYe035934@gw.catspoiler.org> Date: Wed, 23 Aug 2017 08:04:49 -0700 (PDT) From: Don Lewis Subject: ULE steal_idle questions To: freebsd-arch@FreeBSD.org MIME-Version: 1.0 Content-Type: TEXT/plain; charset=us-ascii X-BeenThere: freebsd-arch@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Discussion related to FreeBSD architecture List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 23 Aug 2017 15:04:57 -0000 I've been looking at the steal_idle code in tdq_idled() and found some things that puzzle me. Consider a machine with three CPUs: A, which is idle B, which is busy running a thread C, which is busy running a thread and has another thread in queue It would seem to make sense that the tdq_load values for these three CPUs would be 0, 1, and 2 respectively in order to select the best CPU to run a new thread. If so, then why do we pass thresh=1 to sched_highest() in the code that implements steal_idle? That value is used to set cs_limit which is used in this comparison in cpu_search: if (match & CPU_SEARCH_HIGHEST) if (tdq->tdq_load >= hgroup.cs_limit && That would seem to make CPU B a candidate for stealing a thread from. Ignoring CPU C for the moment, that shouldn't happen if the thread is running, but even if it was possible, it would just make CPU B go idle, which isn't terribly helpful in terms of load balancing and would just thrash the caches. The same comparison is repeated in tdq_idled() after a candidate CPU has been chosen: if (steal->tdq_load < thresh || steal->tdq_transferable == 0) { tdq_unlock_pair(tdq, steal); continue; } It looks to me like there is an off-by-one error here, and there is a similar problem in the code that implements kern.sched.balance. The reason I ask is that I've been debugging random segfaults and other strange errors on my Ryzen machine and the problems mostly go away if I either disable kern.sched.steal_idle and kern_sched.balance, or if I leave kern_sched.steal_idle enabled and hack the code to change the value of thresh from 1 to 2. See for the gory details. I don't know if my CPU has what AMD calls the "performance marginality issue".