From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mout.gmx.net (mout.gmx.net [212.227.17.21]) by sourceware.org (Postfix) with ESMTPS id 84A343877027 for ; Wed, 18 Mar 2020 16:47:11 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 84A343877027 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=gmx.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=n54@gmx.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1584550027; bh=6cHvKyjvTq86Xxrb1RaGaGuyEsPcrzPZsBIZhJHAg1g=; h=X-UI-Sender-Class:To:References:From:Subject:Date:In-Reply-To; b=QpmMWYNeXpaA01oLGg9BxhS7yVp5AhuXeZhy6cl+aM8apu0PjmEf3VPrSlug114cB RWS1XFDdijrUbWeUolkx+5Cz4yZr2fHv9fVsob7zg7IIxGmjWv90dbKwB0pnsgVpXd qNXNmF5P3WsbebEsIHWE9dOMR6vDMyu31jLbz7iQ= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from [192.168.0.241] ([89.79.191.25]) by mail.gmx.com (mrgmx104 [212.227.17.174]) with ESMTPSA (Nemesis) id 1MxlzC-1jUcnV157W-00zBup; Wed, 18 Mar 2020 17:47:07 +0100 To: Simon Marchi , gdb-patches@sourceware.org References: <20200317163020.28790-1-n54@gmx.com> <597c7d5f-dfd5-53a8-3369-4042d4cd653a@simark.ca> <72744690-5add-413e-a4cf-ada6cf8bd5e9@gmx.com> From: Kamil Rytarowski Autocrypt: addr=n54@gmx.com; prefer-encrypt=mutual; keydata= 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 4XSbcg== Subject: Re: [PATCH] Return unconditionally ptid.pid () in get_ptrace_pid() for NetBSD Message-ID: <1d3657a6-acda-dc39-6fc0-5fa3befa4e27@gmx.com> Date: Wed, 18 Mar 2020 17:45:52 +0100 User-Agent: Mozilla/5.0 (X11; NetBSD amd64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="YeRMc1I9k7vYv3d2gbG244V4OZHyS5FSG" X-Provags-ID: V03:K1:5zdfZQjCoUzstrAW8uAcBOstCS4EYcD6WQi1Y/PacSAxw6XHWl+ th9jDxBlqZdE9DNH9Zit/ExFusHMMlyvwwGDPTFq6nfEJsE6ufSUmCcHI2hMe2GMgaUxYH7 MFX1Y7r/4a4NNb8DriKWC+TSU9/KQpkdNJeLXP+qpNlQ5lVgWeiPYpepoLM6SnPOoZIwg20 dXDT0GbnSR1VZmt+/YE5Q== X-UI-Out-Filterresults: notjunk:1;V03:K0:OvWBdTcWnEs=:ou3z4Ln8HHjZqNAOaYA9aR nQVPfHKVJcH5nIDTNZyjRXtkSE8HpuNWR3p+NdAdEKwWohfX/l/Xdiw3tvx0fOF+wO4XtIgOu wPAq2cvBOSYg1JrEgxX6wS55C+wUVOBKkVFI+K34as0RpX59XkBTjw790N5p8TIP92JonXMDV oLy2MHi7dvsoIroZ228yMHkmFkAbjA6QXJFLdXxFptzPXr5NJc0g2ungqDZZXimlMXzPvEEnQ XngRSXzqTL2LLntwXL3Gc7oJPj3bcZoSA+bU+rOktk/V6ToT3Ch3P/cjGPTeYGejMaOSxQuu3 Il9CP+w5jDSBfiivZTRiL7jl75KG5Ov6gdNDIOkMHnOI0t0QejBF+AG0PxV/bPvo/z5Bygmxs UC5GJVzzJHI9ehBGorliUCYjXPmP/E+oFdRr1S30YtWCP/pFsKBnSjLUmDRKgZAH92u7BKg/e Db3Vlo0UitKshQAUUJmc0btjwQOc8k1xnqOV88KH61hKgI13rie+Kw5+DKVW/K4ECh4wLr0Ls nZi+zFqyFZdhyqI437QPXPghQGQHPZuNuJ9yxQAOJMUZTQF9HipJwDeHVQVXn3YCjSjrMw63B odDlv8KfVeXvfJpkNxufeaZnIb5LMEeeCdAULzlS4wWgrcbJVTyV93XaiKAa7KXbXyMhxw+uj +aU2rTNFvOTrd7c4fKmAoI7cH0MUB3sGKjarWiOmGul7M2qKGvkzjvEm5EGzxT9w8LiXh3o0D 3fooLUPWmcWbuPDZlPCPytS9iO+r4+JZeCRSFbmPDuO52Cmm2Nil/36olB9ME/+0GVwbz/aFy KEm2frO9mH14hRc0bH5GsjmR49E6LyTfDuezs1s0w04RzS9omz3XJpZKrzQqpGoopwjvtYqms RhHr3pqPG9gx4UgtIFOxd0Ae5hQi+ZRvBjQLf8ut0wschPjWlwN/ufIwk1JlhrE9MIvatgnaI mlXLE2sw75kK6tMwiBm68MS85Yx4wZVVybwwBqWFmz89M/7+J/8vEwZbd/mDZAhnieP1S+1BH MIr95EBmBp9rWraJIKxmRZDxvsYG0mirKY2nJ8FtHioSBjSIL+adZJsdpGCM7u3SLKZit1pnU ejBStLnMF88iLqhXlTR8LNMiRIVU6KpqT11r8u2gQUwAgKt0zba0Yk/dWHvdOfDnQwaafJFy2 uZaNGjI7JrlA81hoiH/4HFyPeznYQrZzhpdwoeolF1SNZ3K3Un/Atsas7b+YdtZog3CKo= X-Spam-Status: No, score=-25.4 required=5.0 tests=DKIM_SIGNED, DKIM_VALID, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 18 Mar 2020 16:47:13 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --YeRMc1I9k7vYv3d2gbG244V4OZHyS5FSG Content-Type: multipart/mixed; boundary="gE0A2ROk3Li90Ocw1uGLpLpOn11yaQDBE"; protected-headers="v1" From: Kamil Rytarowski To: Simon Marchi , gdb-patches@sourceware.org Message-ID: <1d3657a6-acda-dc39-6fc0-5fa3befa4e27@gmx.com> Subject: Re: [PATCH] Return unconditionally ptid.pid () in get_ptrace_pid() for NetBSD References: <20200317163020.28790-1-n54@gmx.com> <597c7d5f-dfd5-53a8-3369-4042d4cd653a@simark.ca> <72744690-5add-413e-a4cf-ada6cf8bd5e9@gmx.com> In-Reply-To: --gE0A2ROk3Li90Ocw1uGLpLpOn11yaQDBE Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable On 17.03.2020 20:00, Simon Marchi wrote: > On 2020-03-17 1:45 p.m., Kamil Rytarowski wrote: >> On 17.03.2020 17:39, Simon Marchi wrote: >>> On 2020-03-17 12:30 p.m., Kamil Rytarowski wrote: >>>> NetBSD tracks the PID and LWP pair separately and both values are >>>> needed and meaningful. >>>> --- >>>> gdb/inf-ptrace.c | 6 +++++- >>>> 1 file changed, 5 insertions(+), 1 deletion(-) >>>> >>>> diff --git a/gdb/inf-ptrace.c b/gdb/inf-ptrace.c >>>> index db17a76d946..6a6cb554ba7 100644 >>>> --- a/gdb/inf-ptrace.c >>>> +++ b/gdb/inf-ptrace.c >>>> @@ -321,10 +321,14 @@ get_ptrace_pid (ptid_t ptid) >>>> { >>>> pid_t pid; >>>> >>>> +#if !defined(__NetBSD__) >>>> /* If we have an LWPID to work with, use it. Otherwise, we're >>>> - dealing with a non-threaded program/target. */ >>>> + dealing with a non-threaded program/target. >>>> + >>>> + NetBSD tracks the PID and LWP pair separately. */ >>>> pid =3D ptid.lwp (); >>>> if (pid =3D=3D 0) >>>> +#endif >>>> pid =3D ptid.pid (); >>>> return pid; >>>> } >>>> -- >>>> 2.25.0 >>>> >>> >>> I think you should just avoid using get_ptrace_pid on NetBSD altogeth= er, since >>> it is meant for OSes that require passing a single thread identifier = to ptrace >>> (whereas NetBSD requires the (pid, lwp) pair). >>> >>> Even with this modification in get_ptrace_pid, you need to change all= the ptrace >>> call sites to pass the lwp on top of it. >>> >>> I would suggest to instead #ifdef out get_ptrace_pid entirely on NetB= SD, to avoid >>> using it by mistake, and just replace all ptrace call sites possibly = used on BSD >>> to be >>> >>> ptrace (request, ptid.pid (), addr, ptid.lwp ()); >>> >>> This matches what I suggested in: >>> >>> https://sourceware.org/pipermail/gdb-patches/2020-March/166735.html= >>> >>> Simon >>> >> >> Avoiding is possibly nice.. however in the current code it is much mor= e >> intrusive. We would need to patch now generic and OS/CPU specific code= >> (some of that is also shared with other OSs due to legacy reasons). >> >> I think it is much cleaner to return ptid. pid() for NetBSD and reflec= t >> the meaning of get_ptrace_pid(). >> >> If I follow your advice I end up with ifdefs like here: >> >> diff --git a/gdb/inf-ptrace.c b/gdb/inf-ptrace.c >> index b63a1bf88ef..a5d9c1d10ea 100644 >> --- a/gdb/inf-ptrace.c >> +++ b/gdb/inf-ptrace.c >> @@ -349,7 +349,11 @@ inf_ptrace_target::resume (ptid_t ptid, int step,= >> enum gdb_signal signal) >> single-threaded processes, so simply resume the inferior. */ >> pid =3D inferior_ptid.pid (); >> else >> +#ifdef __NetBSD__ >> + pid =3D ptid. pid(); >> +#else >> pid =3D get_ptrace_pid (ptid); >> +#endif >> >> if (catch_syscall_enabled () > 0) >> request =3D PT_SYSCALL; >> @@ -533,7 +537,11 @@ inf_ptrace_target::xfer_partial (enum target_obje= ct >> object, >> const gdb_byte *writebuf, >> ULONGEST offset, ULONGEST len, ULONGEST *xfered_len) >> { >> +#ifdef __NetBSD__ >> + pid_t pid =3D inferior_ptid. pid(); >> +#else >> pid_t pid =3D get_ptrace_pid (inferior_ptid); >> +#endif >> >> switch (object) >> { >=20 > I was thinking more about using a "gdb_ptrace" function in this file, a= s > you have added in the other patch. The only ifdef would be in that fun= ction. > get_ptrace_pid would only be used in the !__NetBSD__ branch of that fun= ction. >=20 > inf_ptrace_target::xfer_partial and inf_ptrace_target::resume would jus= t call > gdb_ptrace, passing the right ptid. >=20 >> Maintaining that will be certainly harder and it will be prone to >> recurring regressions. >> >> If we want to take the route of cleanups and refactoring I think it >> would be better to rethink the pid,lwp separation in Linux; but that i= s >> much beyond the scope of my patches. >=20 > I'm not sure what do mean by "rethink the pid,lwp separation in Linux".= >=20 Please disregard. Refactoring (and removal assumptions about specific threading model) is out of scope of my patches. >> Last but not least, get_ptrace_pid() would work now for NetBSD literal= ly >> as specified in the function name now... just extracting pid from ptid= , >> not calculating it from lwp/pid. It's now questionable whether a wrapp= er >> function is still needed, but that would be optimized to .pid () in fu= ture. >=20 > Yeah, but since NetBSD doesn't need get_ptrace_pid, I'd like if we coul= d avoid > making get_ptrace_pid more complex and if the ifdefs were concentrated = around > the ptrace calls (ideally, in as few spots possible, thanks to the gdb_= ptrace > functions). >=20 > Simon >=20 I've submitted a patch disabling get_ptrace_pid() for NetBSD and switching in 2 places to ptid. pid()me file. Not all ptrace(2) calls accept PID+LWP on NetBSD as here are calls that work for the whole process such as DETACH, ATTACH, PT_SET_EVENT_MASK etc.= It's easier for now to go for this approach in the proposed patch. --gE0A2ROk3Li90Ocw1uGLpLpOn11yaQDBE-- --YeRMc1I9k7vYv3d2gbG244V4OZHyS5FSG Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAEBCAAdFiEELaxVpweEzw+lMDwuS7MI6bAudmwFAl5yUEAACgkQS7MI6bAu dmz7MBAArw0kdSdLC0S0PosBx049ST8Y07Z+sjM1H4fboaV8fLpJdlXDC5Y+fXDM XWDbofPGTxycJTDh6gwgFC3bZKL6CQFCSwdSNEHtCI9k6X67OU3e1sCaqDPDLFSM X7qWyg+KZzpMQO5K8JOlJnL77Lrig5SwYrBk+sh8zwbMy3C02+Ibc+6RlYSqxEmH eKOUuo3YotGIfWMvX3Nc8NtpZ9+xohzxLczr9ok9bvYr5+DjaBylSnfmHrYvwz4l YU531o7SKH1PTFAh5QWOokw7tSwnNQFrdssAXdp81ZQuP39MpM6tuyvvA+DmA9JT MvKT5cQy7J6RJI/meTvf5c/IRIMSWWQX0xwEVkfoEdBSY12apNZzd8qiEyjvwTqJ sqPMffydHN+4sonzXJSvZiGZ0p7TnAgu7hkYO2lkbXknGfcJJqc8Ob0NUjAlIQ5U ysd79Y84xeTeKqMrNxCCpxfmLPSAXuCagyGSODQVRxO1mAKQ/2JBXLOxK7C+F2K1 Kd88ZR126NeNoDKCy8OKvPripP+w3hqQzmbaFOXEZPtsaaR2AJtIBzfi1jrYTgS6 xjnjoqAwimZIpvso3S09fO8Q8dD5dW8S4cdgmeaODxRjjKFRK/d3XVJM6WWsI6rV 8VnuXhbbNXJrKtGlDuJOeZKUSQVsaiReg10Br/4KYNL/PkZFfLQ= =MJbo -----END PGP SIGNATURE----- --YeRMc1I9k7vYv3d2gbG244V4OZHyS5FSG--