From: Oleg Nesterov <oleg@redhat.com>
To: Dmitry Safonov <dsafonov@virtuozzo.com>
Cc: linux-kernel@vger.kernel.org, mingo@redhat.com,
luto@amacapital.net, tglx@linutronix.de, hpa@zytor.com,
x86@kernel.org, 0x7f454c46@gmail.com, gorcunov@openvz.org,
xemul@virtuozzo.com, khorenko@virtuozzo.com,
Andy Lutomirski <luto@kernel.org>,
Alexander Viro <viro@zeniv.linux.org.uk>,
linux-fsdevel@vger.kernel.org
Subject: Re: [PATCH 4/6] x86/coredump: use core regs, rather that TIF_IA32 flag
Date: Tue, 7 Jun 2016 00:43:36 +0200 [thread overview]
Message-ID: <20160606224336.GA30331@redhat.com> (raw)
In-Reply-To: <20160606204548.GA23681@redhat.com>
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().
Oleg.
next prev parent reply other threads:[~2016-06-06 23:46 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-01 13:11 [PATCH 0/6] x86: 32-bit compatible C/R on x86_64 Dmitry Safonov
2016-06-01 13:11 ` [PATCH 1/6] x86/vdso: unmap vdso blob on vvar mapping failure Dmitry Safonov
2016-06-01 13:11 ` [PATCH 2/6] x86/vdso: introduce do_map_vdso() and vdso_type enum Dmitry Safonov
2016-06-03 9:50 ` Cyrill Gorcunov
2016-06-03 10:03 ` Dmitry Safonov
2016-06-01 13:11 ` [PATCH 3/6] x86/arch_prctl/vdso: add ARCH_MAP_VDSO_* Dmitry Safonov
2016-06-01 13:11 ` [PATCH 4/6] x86/coredump: use core regs, rather that TIF_IA32 flag Dmitry Safonov
2016-06-03 9:51 ` Cyrill Gorcunov
2016-06-03 9:56 ` Dmitry Safonov
2016-06-03 10:01 ` Cyrill Gorcunov
2016-06-06 20:45 ` Oleg Nesterov
2016-06-06 22:43 ` Oleg Nesterov [this message]
2016-06-08 13:28 ` Dmitry Safonov
2016-06-01 13:11 ` [PATCH 5/6] x86/ptrace: down with test_thread_flag(TIF_IA32) Dmitry Safonov
2016-06-03 9:57 ` Cyrill Gorcunov
2016-06-03 10:27 ` Dmitry Safonov
2016-06-03 10:41 ` Cyrill Gorcunov
2016-06-06 21:19 ` Oleg Nesterov
2016-06-07 11:38 ` Dmitry Safonov
2016-06-09 17:21 ` Andy Lutomirski
2016-06-10 20:07 ` Oleg Nesterov
2016-06-10 20:14 ` Andy Lutomirski
2016-06-13 13:50 ` Oleg Nesterov
2016-06-13 20:40 ` Andy Lutomirski
2016-06-14 14:34 ` Oleg Nesterov
2016-06-14 14:43 ` Dmitry Safonov
2016-06-01 13:11 ` [PATCH 6/6] x86/signal: add SA_{X32,IA32}_ABI sa_flags Dmitry Safonov
2016-06-04 5:08 ` Andy Lutomirski
2016-06-04 15:57 ` Dmitry Safonov
2016-06-01 13:15 ` [PATCH 0/6] x86: 32-bit compatible C/R on x86_64 Dmitry Safonov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20160606224336.GA30331@redhat.com \
--to=oleg@redhat.com \
--cc=0x7f454c46@gmail.com \
--cc=dsafonov@virtuozzo.com \
--cc=gorcunov@openvz.org \
--cc=hpa@zytor.com \
--cc=khorenko@virtuozzo.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@amacapital.net \
--cc=luto@kernel.org \
--cc=mingo@redhat.com \
--cc=tglx@linutronix.de \
--cc=viro@zeniv.linux.org.uk \
--cc=x86@kernel.org \
--cc=xemul@virtuozzo.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.