From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1757005AbcFHNaa (ORCPT ); Wed, 8 Jun 2016 09:30:30 -0400 Received: from mail-am1on0147.outbound.protection.outlook.com ([157.56.112.147]:44159 "EHLO emea01-am1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1756986AbcFHNa1 (ORCPT ); Wed, 8 Jun 2016 09:30:27 -0400 Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=dsafonov@virtuozzo.com; From: Dmitry Safonov Subject: Re: [PATCH 4/6] x86/coredump: use core regs, rather that TIF_IA32 flag To: Oleg Nesterov References: <1464786697-20639-1-git-send-email-dsafonov@virtuozzo.com> <1464786697-20639-5-git-send-email-dsafonov@virtuozzo.com> <20160606204548.GA23681@redhat.com> <20160606224336.GA30331@redhat.com> CC: , , , , , , <0x7f454c46@gmail.com>, , , , Andy Lutomirski , Alexander Viro , Message-ID: <42fcbe2c-8436-7f0a-054f-24ef66f57b7a@virtuozzo.com> Date: Wed, 8 Jun 2016 16:28:57 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.1.0 MIME-Version: 1.0 In-Reply-To: <20160606224336.GA30331@redhat.com> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [195.214.232.10] X-ClientProxiedBy: AM3PR08CA0015.eurprd08.prod.outlook.com (10.160.207.153) To HE1PR0801MB1290.eurprd08.prod.outlook.com (10.167.247.144) X-MS-Office365-Filtering-Correlation-Id: ab5c1dd4-4d86-46d0-d0e2-08d38fa10741 X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1290;2:KWQFyu2YEjIOKZTwTkIvrLMidNwSNpLr+DiwBHLGogkJnHQG2d17mV/z1axopKh45Ue4crofvl7pMIfcxMduUu8TuhQKXsvDCZVCwXFwfdvssghtqbg6oVFQDuimki6VXffiaMx1F1Wm94JbMpa2vCWY7iUPNtMGujyYP/V+7Dg4X5YYWQKRQL2Xyi3BC+Z9;3:1RqM6FAqHHFCqpuejaFVMjVtq2kOz748IieBRREFQLvbzHOBh72UPCEpzjyCoA09wHREAc0UjWYKWh9DwhfXIT+iIqQFVFpxBJ7DuGpU0Ik1NaDZxEYori6Krt79WhIf;25:zktgIjN4j1ykM0M1IUAJVwNXXU/RDxkoGbbkwKE0xbNpGxVQPipxNVbC08Ztsq2F115+e0I8L5P6m/OAMDGfZ9ti+1BTaf00TgX0GXp9PhovbFVA+FYRw7glBhggAh9f0jYyY0kacDQ1pZ1mKUyc87SAI6l0ViDppdiwD6jU3mm3PDM7AHzJQv+lCBohSix/yD1Bov4jQ+O17iKKZLAFAnMMpZ/j153MaSLbWwWwv2AmeKEiOJeX8UXadg5VAaRah1qdCBII4RrWeeZ4abeAIZCKIMf3HyX8dzoL0peHDujoU1NARaV7lveLcYmYLXt7VfUJcXN/vvmmdb00TkxSwxF+oO3ppQ7Yzha19zQgA8k7vLir7jLCtuS3Ab1Q8bxuk6/Y1fljn0gPVpUzRxbX+7Kqp9q8GaFEaMyZQy+yi3s= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:HE1PR0801MB1290; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040130)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6041072)(6043046);SRVR:HE1PR0801MB1290;BCL:0;PCL:0;RULEID:;SRVR:HE1PR0801MB1290; X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1290;4:iwwojLZJSQHjxGjx03iDb6FpWrTYoH/R2IKDWL2FHHy5cqwgER+OXJOhJqgi64j8BSIHLfIuUbkGb32lOF9j9Pkm4zC/wKRFeJKEuRElLs8gw01m+jaYd3aZXO8PdPD/5uTQZya/1RysyOzpizoLe4Piyk1DTh9TnwIcfjQ7dsKQJzdzULHgI4UYV6N19ggqew7OCJBoc6LS4ShtgiMYhjXoYJeoHDk8X2snyAkJVh7xU3t5iyvyyMlHU1UX0SV4lCmrosZLwFxBNezNlM97CpuG5+ugwoXD8qlJeFhfkzlLAohDzYdUM95Eg+Vm8qGpTYeujapjqZpPTFrywAA9jaD94bAfCfblaPIqwcuYRfkZc3BB4x7UYuVX9IQLhIQeD2+SrERt+iYtxES5l48PkJhyfOGBRE9+OCeICRR1dSM= X-Forefront-PRVS: 0967749BC1 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(6049001)(199003)(24454002)(377454003)(189002)(54356999)(76176999)(8676002)(64126003)(81166006)(81156014)(50986999)(47776003)(42186005)(230700001)(31686004)(101416001)(66066001)(65956001)(2906002)(4326007)(83506001)(50466002)(31696002)(92566002)(36756003)(65806001)(68736007)(189998001)(86362001)(110136002)(97736004)(4001350100001)(77096005)(33646002)(106356001)(93886004)(105586002)(5004730100002)(2950100001)(6116002)(3846002)(586003)(23746002)(5008740100001)(65826006);DIR:OUT;SFP:1102;SCL:1;SRVR:HE1PR0801MB1290;H:[10.30.26.154];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;CAT:NONE;LANG:en;CAT:NONE; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;HE1PR0801MB1290;23:DZbYdZFjgxneAJrNhQqimx/6AXc20jj+ZE4?= =?Windows-1252?Q?ahtX9DqG+l/jJDLqMzXvBM5ym66/+7VHn8YH3VltURCrzRSooXxQ6NRb?= =?Windows-1252?Q?QjbJr1P5oDdeccuLiQA7j9HZ6K8htEj9Z2zNMGkXI2VkGzfHbMFLMWzI?= =?Windows-1252?Q?mEy5yAIBSnLR5dBm97r8G75iPi9Ihp4Oyku08R8SZ8IqTU8VJdsxf8es?= =?Windows-1252?Q?+YQxPx4KRUNQScXZRDTjZp/b2x3URev0INNIwqxEgBvv01i7Qv1NDBWB?= =?Windows-1252?Q?ipzUHn0yK3xlIi+llHTB6pRVfFOYCR09oI80r72/HahuJZp9FKXy+DM6?= =?Windows-1252?Q?7OfazgYGWJD/gPcwLmafr2lKi/dhGKDa9p2mSBH2+ieG8Sbba1YVmNJe?= =?Windows-1252?Q?jtUfrOsyVZj3VwcfyB+4jYVTlcosKmkAY5jqTGh2SuFfZ0XA2RHThaAB?= =?Windows-1252?Q?p4OkXfWbdxFCHfGH64DOW0Y7P0DiJWfoFN+2Vl+T8IlhhN/PhUuOY0yP?= =?Windows-1252?Q?3Vro29iUhq2KGZLosKz/1iV8/KeziaDV10ErO2QjSMnrY3+vB/e4xrkN?= =?Windows-1252?Q?kT7719OpEMdVLJx5BIDDEw4om6NxPCfiCW5K3Q677JlK3RUIVVRf7tm6?= =?Windows-1252?Q?MH7ayqx9Vox4VVGz50WyNN586iu/JHmojnQB4a3YNMjMINwFjM2VnjPo?= =?Windows-1252?Q?EFHtVfHO5oriuk3xjNEStCpyn1KNDDIpL7gsOgSVwLO2s+6n4faSo56y?= =?Windows-1252?Q?tv+7vGMZp+hUjczdHcH6o6cyPxim/piMKP+T/1Jb3zW1IwhZ+eu1xIR1?= =?Windows-1252?Q?Ftx8DfW2m6+pMqVol01YJO8V2Lccgbac9jCk2vtZmE0NfcN6xTuvF2VB?= =?Windows-1252?Q?l1Nw4mgoRj9uiXL7+BK5Fmt2AvLtONt/aESJco00UB6URQ/Wp5uCyfOX?= =?Windows-1252?Q?SNsCLVso7mmgzRK4E6ATnwP8wcOCnwDuTll/m4p/I5orKlJQQRzYSD71?= =?Windows-1252?Q?M2Vl+hEFCdX3XHg0m7zISu4GwUFBBdbixtb7DJS8wyJc5/3uqESHo/tX?= =?Windows-1252?Q?RNIpy1JLmDA9iTyf6saGcCWX9QxduJOtbP7Wd06225ZAKErX3GFZgxMO?= =?Windows-1252?Q?62VKw4EFgafx8JcAMNvmkEbc9/uYpobLB32NzMLS10h7NWebFDxeaq3/?= =?Windows-1252?Q?P+54XtljWPfTWbRM4i4pyhEGNeeHEPng5RjX5Clax3+Nb9yzlhIbKPuf?= =?Windows-1252?Q?TZDxLuOz00pYqEH83DC3UYPSR4FlYFz0s2vXua0V0SrRx79oX1ctpS8E?= =?Windows-1252?Q?ESTbx?= X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1290;6:kYDyxSM6irVtfsIhSbIWcGaDjzqWduDEZb0lr42pOatZb5ENCCAxooFmmycHaQBUWaO9vo6zWnEcHwKsprPuuCiEXTTQc4zII/O1TXXbx34KSSzLY3avtL9F+7tThEmlFeZBaDVN7qEvRzDAknZcyvM+WuhzyYozBqrfXUqJGoH57kumtU4PebBpb1xAHmULivgYrkJ4NE1EJ6mCKMAdhiXIHg6oJcRilyS4iBux8sNnVML9nNFj8eLSJaub7zT92IhNPh9l869Eo26l0tWX8xqsnccsOu0snDM+tTk8kTiDXt8g9X+JN1bTNnkNMg1J;5:0LPXOfRAzOl4x23KjzTfhvDbRDdMsi2riBt8qFz+AxjoyG1KS27dYmCRRp4jlwzD2RZ1S0AMKWwDEWH4NTfTxEE4WxfMYGrYgDac5Z4JppXnShy+OMVrarp8FaTyXjRzCu8yZHFYJydv5KsplCdiFA==;24:oz/xDqwZy3bHjC2s6h7kwPj+ew+/5rrZd7SA9+oSVfKXmOc1kZp9JxTRcKQ6ZBPQpACcJxm0/A36hILbaULWLILgkesU9AWruzJTy412KB4=;7:Vm13hsf/XxnuhyCAA9VyPIiJgoqERSOUC8TrABJ2yNNR6p5m25EWpa+4jjiFkbhHbZeaArUlZEZ1DHH7DwSTmBRe+VD8/2c7HQYnFM3oK1LrL8+8HM4HELtNQ4glbhVKwHWdbbBpTl+lrFIBT0V5NpjB9kF+NFz1Yqx4eIVKdNZGmFslJziUKx82qwdJ8rST7kF7J7fFUWxtkepxW8TlzQSukocbUjOQoaMrAEOlvW4= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;HE1PR0801MB1290;20:8oz1krDBsW2XVNgEpmUkxJGDFSOauO8QIA7jBrt+6Dxhj3oYFI4dZ2Ug9PDMT3tZ6Vsk0Tx4zfjI1+6X+kVeXboRiWzjEUxw4IIwd4jS7nwB79/x965Tgnxd/JSuZjK7VXFqV4NF79D8TaheBMIy1ecomig4/0NjPvFcepBe8Hs= X-OriginatorOrg: virtuozzo.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Jun 2016 13:30:14.6288 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: HE1PR0801MB1290 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 06/07/2016 01:43 AM, Oleg Nesterov wrote: > On 06/06, Oleg Nesterov wrote: >> >> On 06/01, Dmitry Safonov wrote: >>> >>> static int fill_thread_core_info(struct elf_thread_core_info *t, >>> const struct user_regset_view *view, >>> - long signr, size_t *total) >>> + long signr, size_t *total, >>> + struct pt_regs *regs __maybe_unused) >>> { >>> unsigned int i; >>> >>> @@ -1652,11 +1653,11 @@ static int fill_thread_core_info(struct elf_thread_core_info *t, >>> */ >>> fill_prstatus(&t->prstatus, t->task, signr); >>> (void) view->regsets[0].get(t->task, &view->regsets[0], >>> - 0, PR_REG_SIZE(t->prstatus.pr_reg), >>> + 0, PR_REG_SIZE(t->prstatus.pr_reg, regs), >> >> Hmm. I don't understand this... Note that this "regs" argument has nothing >> to do with t->task if the process is multithreaded, >> >>> @@ -1772,7 +1773,8 @@ static int fill_note_info(struct elfhdr *elf, int phdrs, >>> * Now fill in each thread's information. >>> */ >>> for (t = info->thread; t != NULL; t = t->next) >>> - if (!fill_thread_core_info(t, view, siginfo->si_signo, &info->size)) >>> + if (!fill_thread_core_info(t, view, siginfo->si_signo, >>> + &info->size, regs)) >> >> fill_note_info(..., args) is called with args = task_pt_regs(dumper_thread). > > forgot to mention... yes, this matches the fact we use a single "view" > for all threads, and we get it via task_user_regset_view(dump_task). > > But this change (imo) adds even more confusion, and without the next patch > the logic looks "obviously wrong", becauase PR_REG_SIZE/etc look at > dumper_thread->cs while task_user_regset_view() checks thread flags. > > Anyway I fail to understand these macros... Say, PR_REG_SIZE(S). Can't we > kill it and use regsets[0].n * regsets[0].size instead ? These numbers > should match whatever we do, if we call ->get(). > Thanks, the idea of dropping PR_REG_SIZE looks better than my patch! I'll try to drop those macros for the next revision. -- Regards, Dmitry Safonov