From owner-svn-src-all@freebsd.org Sun Oct 4 21:06:16 2020 Return-Path: Delivered-To: svn-src-all@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 16741433C4E; Sun, 4 Oct 2020 21:06:16 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) Received: from CAN01-TO1-obe.outbound.protection.outlook.com (mail-to1can01on062a.outbound.protection.outlook.com [IPv6:2a01:111:f400:fe5d::62a]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mail.protection.outlook.com", Issuer "GlobalSign Organization Validation CA - SHA256 - G3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4C4GVZ32sfz4H6F; Sun, 4 Oct 2020 21:06:14 +0000 (UTC) (envelope-from rmacklem@uoguelph.ca) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WIwG2alDgHl/Zsc8xTI/D0hmryoGKPGnQYtnh4iTbadYKl3ZNlabSstkk51prwEe2zPIhfV9dTk9SRM3rrls2wmvCrji7hoMhTDWi1QoFHzLYqksCnQZTHc2VPxSb9dczHvESUUgQnrstkC7dTw8YrBT442IllPPF5kKnLmbCpD0eMvpX6PnQMnrEbv71JYGBVQrt7mikLYYuP/BRbxtvbSRYifSwIiBN6FoZBxWTUmxu1C2H/Y5NuQtMQeKMdBsr6rdd3aQDuaiAjJrwstQ5SEnOfWz4qEa9ZsNABpxvQQZHpmhdoTvHR/kH9fs5RJolcy3MEGdgI8GGBEk0+MaZg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6rmRIKf2CXv3hoGMf0hGipzm9t4RioeKL0yCwBP6JuQ=; b=fbVZhCv4Cb+a+yG9djYuITb2KeuZw0om+ibdLiIuSpUQjkQsDWy4pyZf7S2FHZYlkQ2Ho/0wzGkFFXfArK2IWSxpXzo0BsYiFjXHZWkHMFqPFY+mqD8f/shNid4lB4Lez5t1qcIMexoL0v3vfvB7dsL9a71ydjKXNtUarS6JZOB7n7u5szqSgFtpoesMgWvpKWpdF5fchn9cN05J7ObSyp4kMCjNWqzswF6pOZfjaxN9Gm4JGaPFcuzrodgel6tH7WihPVga4f2FpqNuE7t023CWORKbEdz8boTJCK0QwnB5NEH/PBJnTu8fLBGil7POHHTfuQTVPokuDai09WjSpg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=uoguelph.ca; dmarc=pass action=none header.from=uoguelph.ca; dkim=pass header.d=uoguelph.ca; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=uoguelph.ca; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=6rmRIKf2CXv3hoGMf0hGipzm9t4RioeKL0yCwBP6JuQ=; b=Ft9y4i2E7DWk5tToUit+yrsqrre1yKTZYd8Ny3w8p+XKRXXsG2enY2nPalxIn+9t09QgbBwVeKGCflGgUFUszEMLPlKa9YE5SIMa4qDsxTg/pMrHJXiuD9xyjtEBdfwzW7AFk+lkmCIj9cwh6nnQphHclDw3YWdvSw3hcGN72Z47QVllbUmgCanBdVpcWS+uaOgMInM67WlNEn1U3F1IGJaw0GfOCQiuOBfevtatWzy1ZTbJrMsgJQtPrUQVW/oUSBeqoyTr+jjU9K6+/WKsyYbavGAaMryfIFWvPhDbqwOgv9LJTFQV0OBbMchouvVzkaXDPPfyyJZEw4ejZz60zg== Received: from YTBPR01MB3966.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b01:24::27) by YTOPR0101MB2124.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b00:1d::30) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3433.37; Sun, 4 Oct 2020 21:06:12 +0000 Received: from YTBPR01MB3966.CANPRD01.PROD.OUTLOOK.COM ([fe80::687f:d85a:a0a3:bd20]) by YTBPR01MB3966.CANPRD01.PROD.OUTLOOK.COM ([fe80::687f:d85a:a0a3:bd20%6]) with mapi id 15.20.3433.044; Sun, 4 Oct 2020 21:06:02 +0000 From: Rick Macklem To: Mateusz Guzik , Konstantin Belousov CC: "src-committers@freebsd.org" , "svn-src-all@freebsd.org" , "svn-src-head@freebsd.org" Subject: Re: svn commit: r366429 - in head/sys: kern sys Thread-Topic: svn commit: r366429 - in head/sys: kern sys Thread-Index: AQHWmmwkwGWcutQP9ECZTNSVKp4v5qmHw7EAgAArAUk= Date: Sun, 4 Oct 2020 21:06:02 +0000 Message-ID: References: <202010041633.094GXg4l044462@repo.freebsd.org>, In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 86a87d54-49f2-4040-8fee-08d868a94d2d x-ms-traffictypediagnostic: YTOPR0101MB2124: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:6108; x-ms-exchange-senderadcheck: 1 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: tXBuSyfFb4A+HkWkD4SzDC/nnv4cRt895EJVy8KoQtA1bz/g3xj82Pe5RzVOwJjdJ+4609dLQJQAxXY2lZZQLODB1+fL1MIXRqDElRKQz1G/6Z5vOm4c4twixSCdcIjQbLuBpl3jymx3dGkgPY3jzQeTzKki0zbx7iOJADT0wyeS6zkZCJ2v7ldBo7B5sOSG4AagGfoOpffJ/dFAMTzPYgN9JJQ/aeWsTjCxlj7XxyHpu5/fwhRjocivCzWZl+WDP+YuYejy/ZSMLZOgxPMRv/ZaoNDoC3cCcGcq1+94Dc4/1jW+ylEaId4WB3kDeo6oBDH2jRoh55Oj6ssd0KbOTGm2Ozdt/gtJGvUbvxLG5m089tXsQZM7yKESP9jqWTJsQ/Yv2ktJU8eQZmta8x68FA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:YTBPR01MB3966.CANPRD01.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(39850400004)(346002)(136003)(366004)(376002)(396003)(33656002)(4326008)(66556008)(71200400001)(66476007)(66946007)(7696005)(110136005)(83380400001)(8676002)(76116006)(478600001)(54906003)(316002)(86362001)(786003)(52536014)(186003)(6506007)(83080400001)(9686003)(8936002)(66446008)(64756008)(55016002)(2906002)(966005)(5660300002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata: jPppVEFkMWoFBct0DvIJByQa7sINbQq8X1XTH6gvD80IDFd6f0xdGgLnKzgEd0Dn5fgGQYVoGWjglXvNBhDebK7488p/HRu9zeB3uiJw6miEdGcmnxSI3+sPVL5OULnm/zbNlWNZBgR+C8Q9MiGKyXCy88jsDESw9YsxBeaxz7uDsuM+8lIrMtqL9woU+2Sp19lsByFdh8vLm7c3oBnsIlSUpoXwyGkqDUCEZo/jeGTlhVVSpROpKYx4hX3l6MzIwCaPU+GRWCHJ3jHRN0MFaEa16WviOpsZa1a9PAWHPTxmsM1ejE8APNii3U5w2sJ08mPO4uo11rDgupqnXSLDuFr8FpjSwDt7zOZRHT8avJ96r0m+g+RDAFaXTtWMUYt47zsdDKRUcuQgt8dJb4R7u/7XYYQlVwGNbF3diTJFDcoNDoxhrin/VfxDeQ3657iLr0wJJ+6fqsjgG/qCL8fwPlwqB9mgmCvq6/ljAbsL8FMS2cpAwNyoSBvZUpwMZ415kVDZayHnT6tyW1lnwXozaGVVgNUAkeJrKEFUcO9vXla7C6/EtZ4GP4ZMmJ1wCP9yRyKEcuPbxNGmDct46Ffn1Q+4C8MxupZr9ZmLNm5uyL4e8tM1kDP6FmEZX7q2y2Q41aWuIBIkeHa7wAd/WAiUbSdQlECKTsPIWkkvg/IP+8mpa5pWchkXTtxsw+79rE/f1UGUmHvT27x8nOmbLXWBQg== x-ms-exchange-transport-forked: True Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: uoguelph.ca X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: YTBPR01MB3966.CANPRD01.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-Network-Message-Id: 86a87d54-49f2-4040-8fee-08d868a94d2d X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Oct 2020 21:06:02.5509 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: be62a12b-2cad-49a1-a5fa-85f4f3156a7d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 3D1uVLawcn8QugqFzNvbxcd/2AzeY9BEJHG0Y+VFk/oYX99U6W1oteM0zluf2KrAmWLD5y5CEY4sjKKQZEyx1A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: YTOPR0101MB2124 X-Rspamd-Queue-Id: 4C4GVZ32sfz4H6F X-Spamd-Bar: ------ Authentication-Results: mx1.freebsd.org; dkim=pass header.d=uoguelph.ca header.s=selector1 header.b=Ft9y4i2E; dmarc=pass (policy=none) header.from=uoguelph.ca; spf=pass (mx1.freebsd.org: domain of rmacklem@uoguelph.ca designates 2a01:111:f400:fe5d::62a as permitted sender) smtp.mailfrom=rmacklem@uoguelph.ca X-Spamd-Result: default: False [-6.04 / 15.00]; TO_DN_EQ_ADDR_SOME(0.00)[]; NEURAL_HAM_MEDIUM(-1.01)[-1.006]; R_DKIM_ALLOW(-0.20)[uoguelph.ca:s=selector1]; FREEFALL_USER(0.00)[rmacklem]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; R_SPF_ALLOW(-0.20)[+ip6:2a01:111:f400::/48]; NEURAL_HAM_LONG(-1.00)[-1.003]; MIME_GOOD(-0.10)[text/plain]; RCPT_COUNT_FIVE(0.00)[5]; DWL_DNSWL_LOW(-1.00)[uoguelph.ca:dkim]; RCVD_COUNT_THREE(0.00)[3]; TO_MATCH_ENVRCPT_SOME(0.00)[]; DKIM_TRACE(0.00)[uoguelph.ca:+]; DMARC_POLICY_ALLOW(-0.50)[uoguelph.ca,none]; NEURAL_HAM_SHORT(-1.03)[-1.029]; FREEMAIL_TO(0.00)[gmail.com,FreeBSD.org]; FROM_EQ_ENVFROM(0.00)[]; MIME_TRACE(0.00)[0:+]; RCVD_TLS_LAST(0.00)[]; ASN(0.00)[asn:8075, ipnet:2a01:111:f000::/36, country:US]; ARC_ALLOW(-1.00)[microsoft.com:s=arcselector9901:i=1]; MAILMAN_DEST(0.00)[svn-src-all,svn-src-head] X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.33 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 04 Oct 2020 21:06:16 -0000 Mateusz Guzik wrote:=0A= >Why is the process lock always taken? It looks like both routines just=0A= >check a thread-local flag, so perhaps this can get away without=0A= >serializing this process-wide?=0A= I did spot this slight difference between the initial version of sig_intr()= and=0A= this one. At least w.r.t. copy_file_range(2), the call happens infrequentl= y=0A= enough that the overhead of acquiring the lock is not significant.=0A= =0A= rick=0A= =0A= On 10/4/20, Konstantin Belousov wrote:=0A= > Author: kib=0A= > Date: Sun Oct 4 16:33:42 2020=0A= > New Revision: 366429=0A= > URL: https://svnweb.freebsd.org/changeset/base/366429=0A= >=0A= > Log:=0A= > Add sig_intr(9).=0A= >=0A= > It gives the answer would the thread sleep according to current state= =0A= > of signals and suspensions. Of course the answer is racy and allows=0A= > for false-negatives (no sleep when signal is delivered after process=0A= > lock is dropped). Also the answer might change due to signal=0A= > rescheduling among threads in multi-threaded process.=0A= >=0A= > Still it is the best approximation I can provide, to answering the=0A= > question was the thread interrupted.=0A= >=0A= > Reviewed by: markj=0A= > Tested by: pho, rmacklem=0A= > Sponsored by: The FreeBSD Foundation=0A= > MFC after: 2 weeks=0A= > Differential revision: https://reviews.freebsd.org/D26628=0A= >=0A= > Modified:=0A= > head/sys/kern/kern_sig.c=0A= > head/sys/sys/signalvar.h=0A= >=0A= > Modified: head/sys/kern/kern_sig.c=0A= > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=0A= > --- head/sys/kern/kern_sig.c Sun Oct 4 16:30:05 2020 (r366428)= =0A= > +++ head/sys/kern/kern_sig.c Sun Oct 4 16:33:42 2020 (r366429)= =0A= > @@ -3204,6 +3204,24 @@ sig_ast_needsigchk(struct thread *td)=0A= > return (ret);=0A= > }=0A= >=0A= > +int=0A= > +sig_intr(void)=0A= > +{=0A= > + struct thread *td;=0A= > + struct proc *p;=0A= > + int ret;=0A= > +=0A= > + td =3D curthread;=0A= > + p =3D td->td_proc;=0A= > +=0A= > + PROC_LOCK(p);=0A= > + ret =3D sig_ast_checksusp(td);=0A= > + if (ret =3D=3D 0)=0A= > + ret =3D sig_ast_needsigchk(td);=0A= > + PROC_UNLOCK(p);=0A= > + return (ret);=0A= > +}=0A= > +=0A= > void=0A= > proc_wkilled(struct proc *p)=0A= > {=0A= >=0A= > Modified: head/sys/sys/signalvar.h=0A= > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=0A= > --- head/sys/sys/signalvar.h Sun Oct 4 16:30:05 2020 (r366428)= =0A= > +++ head/sys/sys/signalvar.h Sun Oct 4 16:33:42 2020 (r366429)= =0A= > @@ -408,6 +408,7 @@ int sig_ffs(sigset_t *set);=0A= > void sigfastblock_clear(struct thread *td);=0A= > void sigfastblock_fetch(struct thread *td);=0A= > void sigfastblock_setpend(struct thread *td, bool resched);=0A= > +int sig_intr(void);=0A= > void siginit(struct proc *p);=0A= > void signotify(struct thread *td);=0A= > void sigqueue_delete(struct sigqueue *queue, int sig);=0A= > _______________________________________________=0A= > svn-src-all@freebsd.org mailing list=0A= > https://lists.freebsd.org/mailman/listinfo/svn-src-all=0A= > To unsubscribe, send any mail to "svn-src-all-unsubscribe@freebsd.org"=0A= >=0A= =0A= =0A= --=0A= Mateusz Guzik =0A=