From: Stephane Eranian <eranian@hpl.hp.com>
To: Andi Kleen <ak@suse.de>
Cc: linux-kernel@vger.kernel.org
Subject: Re: [PATCH 17/18] 2.6.17.9 perfmon2 patch for review: modified x86_64 files
Date: Thu, 24 Aug 2006 07:42:59 -0700 [thread overview]
Message-ID: <20060824144259.GG4086@frankl.hpl.hp.com> (raw)
In-Reply-To: <200608241120.31258.ak@suse.de>
Andi,
On Thu, Aug 24, 2006 at 11:20:31AM +0200, Andi Kleen wrote:
> > > > - /*
> > > > - * Now maybe reload the debug registers and handle I/O bitmaps
> > > > - */
> > > > - if (unlikely((task_thread_info(next_p)->flags & _TIF_WORK_CTXSW))
> > > > - || test_tsk_thread_flag(prev_p, TIF_IO_BITMAP))
> > > > - __switch_to_xtra(prev_p, next_p, tss);
> > > > + /*
> > > > + * Now maybe reload the debug registers and handle I/O bitmaps
> > > > + */
> > > > + if (unlikely((task_thread_info(next_p)->flags & _TIF_WORK_CTXSW)
> > > > + || (task_thread_info(prev_p)->flags & _TIF_WORK_CTXSW)))
> > > > + __switch_to_xtra(prev_p, next_p, tss);
> > >
> > >
> > > This should be a separate patch for once (creating _TIF_WORK_CTXSW)
> >
> > The _TIF_WORK_CTXSW is already in a separate patch which you have accepted
> > into your tree if I recall. It was part of the TIF_DEBUG/TIF_IO_BITMAP patch.
> > Unless you are repeating the first point you have at the top of this message
> > about group by functionality.
>
>
> Such a hunk just shouldn't be a hidden in a huge patch. Individual patches please.
>
> > to get to pfm_handle_work(), we set TIF_NOTIFY_RESUME. Once in pfm_handle_work()
> > with the context properly locked, we check the reason for coming here. To mimic,
> > what we do with TIF flags in __switch_to(). I would have to add 3 new TIF flags.
> > The TIF_PERFMON flag means something different. When you come to notify_resume()
> > for a signal in a monitored thread, you may not need to go into pfm_handle_work().
> > But what is sure, is that if you do not have TIF_PERFMON set you never need to
> > get into pfm_handle_work(). So one thing I could do if to check for TIF_PERFMON
> > to miinize the number of useless calls to pfm_handle_work().
>
> flags are cheap. Just add three if you need them.
>
I looked at that in more details. I can get by with 2 extra TIF flags. The problem
is that I have still hooked up to the TIF_NOTIFY_RESUME mechanism to get to the
do_notify_resume() function. To make this work I have to either set TIF_NOTIFY_RESUME
*and* TIF_PERFMON_XXX or I have to add TIF_PERFMON_XXX to this kind of code in
entry.S:
sysret_signal:
sti
testl $(_TIF_SIGPENDING|_TIF_NOTIFY_RESUME|_TIF_SINGLESTEP),%edx
jz 1f
/* Really a signal */
/* edx: work flags (arg3) */
leaq do_notify_resume(%rip),%rax
leaq -ARGOFFSET(%rsp),%rdi # &pt_regs -> arg1
xorl %esi,%esi # oldset -> arg2
But there seems to be some limitations on the low order 16 bits for the _TIF_ALLWORK_MASK
which is also being checked in entry.S and my TIF_PERFMON are 20 and above.
--
-Stephane
prev parent reply other threads:[~2006-08-24 14:53 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-08-23 8:06 Stephane Eranian
2006-08-23 10:09 ` Andi Kleen
2006-08-24 4:27 ` Andrew Morton
2006-08-24 9:04 ` Stephane Eranian
2006-08-24 9:20 ` Andi Kleen
2006-08-24 9:31 ` Stephane Eranian
2006-08-24 14:42 ` Stephane Eranian [this message]
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=20060824144259.GG4086@frankl.hpl.hp.com \
--to=eranian@hpl.hp.com \
--cc=ak@suse.de \
--cc=linux-kernel@vger.kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome