From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.5 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5A206C43457 for ; Thu, 8 Oct 2020 17:05:56 +0000 (UTC) Received: from shelob.surriel.com (shelob.surriel.com [96.67.55.147]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 2169F221FD for ; Thu, 8 Oct 2020 17:05:54 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=gmx.net header.i=@gmx.net header.b="WnoLp/xr" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 2169F221FD Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=gmx.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=kernelnewbies-bounces@kernelnewbies.org Received: from localhost ([::1] helo=shelob.surriel.com) by shelob.surriel.com with esmtp (Exim 4.94) (envelope-from ) id 1kQZM3-00069a-6a; Thu, 08 Oct 2020 13:05:23 -0400 Received: from mout.gmx.net ([212.227.17.20]) by shelob.surriel.com with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94) (envelope-from ) id 1kQZLz-00068n-8W for kernelnewbies@kernelnewbies.org; Thu, 08 Oct 2020 13:05:19 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1602176715; bh=S64JNtTygV9aAdtSNKfbXeFFAaRqMC6ZK67HrzHhPh0=; h=X-UI-Sender-Class:Date:From:To:Cc:Subject:References:In-Reply-To; b=WnoLp/xrvlGP7c0D9RV1IbYOS7I/D9lSou3OzgvxADpCU7AJbZRoAltzSfw3b9ryr nf9bvzCts03YmFI/mfYkTdvPIikAAGeTYbU5f51EWzMJx8pDRh9vBQgTC88Gc9RClR UUqzcSRU96n0EbvDLNi2V+epg9amvTgjoTXfiPw4= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from ubuntu ([79.150.73.70]) by mail.gmx.com (mrgmx104 [212.227.17.174]) with ESMTPSA (Nemesis) id 1MQMyf-1k4FFS1QC9-00MHHX; Thu, 08 Oct 2020 19:05:15 +0200 Date: Thu, 8 Oct 2020 19:05:02 +0200 From: John Wood To: Valdis =?utf-8?Q?Kl=C4=93tnieks?= Subject: Re: Read the "real_parent" field of task_struct Message-ID: <20201008170502.GA3340@ubuntu> References: <20200925161142.GA2857@ubuntu> <53033.1601467187@turing-police> <20201001174902.GA3046@ubuntu> <187490.1601598598@turing-police> <20201002165922.GA4200@ubuntu> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20201002165922.GA4200@ubuntu> X-Provags-ID: V03:K1:k5z+P0GNRhMQxS23e1T4FzrBoqo4vTorW6l1bF9VJDq496eznL7 AirXh5Eghj80cTCKXE/OdlMSvX7My48aNKI1FeCmsM2clWUGFjqURAP5NN4OTfw32XSjsBH oAS+QgwIr7BPKewShVu1miQkn5++a+GXa8wRr7Fn/Nj2uAo8vG1ZwI/6PMOugm52pHNFM7d kKpp7VELg1zRYfcaLUm6w== X-UI-Out-Filterresults: notjunk:1;V03:K0:b/s6GlHShJU=:KSC5F6ygbRL1rs/oE6zJUF +xppdoc3YWTbw4+zrXh0/HmdDzam+k+hpBZnDgh267d4oul4M3Po0vOmjM/chrYcVMXPeoHYP y8vUpJIAE7xxEhlMFD/D32kTJc/Mi/5wfq1nBHhTIfhnTwrJ9/ApKRHhYGDHuMcA9lgwZ72NL Si+yC7YCjSAVkgu5bvidQska6MQd6UwDr56/P3QQF39LYxloEabrheP9DtzDGoxkLK1YlS76t i4FvlfzXr7kd+mw6LZljpBESWOc/DNH4XauqxOR1fwrQl/NPI8EGapcVLd7YyYaA3diQC2p32 0nJYp6ZfCc9kJdYAiPKQUGDTNdq9kYafNIVYx87QFoDwSeYIIkcD4OGTP4/PEERk9LDPg15gW n/9ivxSffTDezAg1EBPZUUnUqr6Qu7Zzan8lEXcVc8wuXWgYLVCi1vnbqjDU7g+OqAE/otvNk bGOIuUwrWs5YZe7pD9uANRgwaLSQAtFX4ORePUHwFMFyh6GilLrdZIwyqzTimckezSnHLMR/D AdfFkyWsSP1eUTTedSgpL0qhAeAEO0CVflLy4ebrOafLQBAEE/OKWcYNQDWwNwklO4w+I3mrk FvD8nMpXNPpRq8oMWjZWaUb332d9wlWCrGgthjOJUV28U9wIgPHULhcZxGmPs6NGHTyDoepMO mCb7Mj+kJrY0rLjhTn7OVGL6dvKhs8GL6kgvMbJef8sPbajOF2mP/DDKttNCQyz57/PIMBwFC hI/qTpP1mwaoY6qpHh3PjtSwjfiOri7lGOgl/Gb2Z+F0rpsljqfGcP7YCs+uf2gE8q1DLWwqA hK5q4Cxs6fgMsUrpViaKb7NTWNH5EH1d6h3oPhzDjFPdg+qcWFes6YkjM4J9atne1EhFQQvJz JvVIc4hOGO1w7xgs/0cas5nhPb9Dc4M990S2rTjyU/NiZ9wOQ/2NY3Yw6a4DLjJm4xR7JoxrO FaKmVX5cmfoJxeOVoBYsctlm9D1JzXPpnZdTsod2eixXs+YwyY/I+KMwZgiHJNXSocTvf//sJ /zI9XzJkLu7LRSMYvF6/zdwSIF2Jsl7oJ3PGM6qxPl7qMeCsjDQkEvIkwuSWLJmqrPaMHbfaF cqm0ETu5qfBeq4DxwMLMHcx2FP+/heo+qfrDxqbR2NPwTK/38ThhJ3rUKkUC3wU2kd9uvOYJo mOjz/dxfyT5YXelsAcYgeztPDOtkq4GpHP+l/KyiTIlszr6khIcUPKjEhvnuYLO1W/ucVXh25 Jnv5mAo8a5LmV6BRsA/goIAstsY4fVuj1Ft2U2Q== Cc: John Wood , kernelnewbies@kernelnewbies.org X-BeenThere: kernelnewbies@kernelnewbies.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Learn about the Linux kernel List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: kernelnewbies-bounces@kernelnewbies.org Hi, On Fri, Oct 02, 2020 at 06:59:22PM +0200, John Wood wrote: > > static void brute_share_stats(struct brute_stats **src, > struct brute_stats **dst) > { > spin_lock(&(*src)->lock); > refcount_inc(&(*src)->refc); > *dst = *src; > spin_unlock(&(*src)->lock); > } > > static int brute_task_alloc(struct task_struct *task, unsigned long clone_flags) > { > struct task_struct *p_task; > struct brute_stats **stats, **p_stats; > > p_task = task->real_parent; /////////// <---- > if (unlikely(!p_task)) /////////// <---- > return -ESRCH; > > stats = brute_stats_ptr(task); > p_stats = brute_stats_ptr(p_task); /////////// <---- > > if (likely(*p_stats)) { > brute_share_stats(p_stats, stats); > return 0; > } > > *stats = brute_new_stats(); > if (!*stats) > return -ENOMEM; > > brute_share_stats(stats, p_stats); > return 0; > } > > This code is very untested. Now the code is tested. > And now my first question: how can I read the > real_parent field in a secure way. Do I need to use an rcu_read_lock()/ > rcu_read_unlock() block? Do I need to use rcu_dereference? Do I need to > use a read_lock(&task_list_lock)/read_unlock(&task_list_lock) block? > > The lines with the mark are not clear to me. Sorry. Any help would be greatly appreciated. Thanks in advance. Regards, John Wood _______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies