lkml.org 
[lkml]   [2007]   [Aug]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 18/25] [PATCH] turn priviled operations into macros in entry.S
Thank you for the attention, andi

let's go:

On 8/8/07, Andi Kleen <ak@suse.de> wrote:
>
> > +#define SYSRETQ \
> > + movq %gs:pda_oldrsp,%rsp; \
> > + swapgs; \
> > + sysretq;
>
> When the macro does more than sysret it should have a different
> name
That's fair. Again, suggestions are welcome. Maybe SYSCALL_RETURN ?

> > */
> > .globl int_ret_from_sys_call
> > int_ret_from_sys_call:
> > - cli
> > + DISABLE_INTERRUPTS(CLBR_ANY)
>
> ANY? There are certainly some registers alive at this point like rax
yes, this one is wrong. Thanks for the catch

> > retint_restore_args:
> > - cli
> > + DISABLE_INTERRUPTS(CLBR_ANY)
>
> Similar.
I don't think so. They are live here, but restore_args follows, so we
can safely clobber anything here. Right?

>
> > /*
> > * The iretq could re-enable interrupts:
> > */
> > @@ -566,10 +587,14 @@ retint_restore_args:
> > restore_args:
> > RESTORE_ARGS 0,8,0
> > iret_label:
> > - iretq
> > +#ifdef CONFIG_PARAVIRT
> > + INTERRUPT_RETURN
> > +ENTRY(native_iret)
>
> ENTRY adds alignment. Why do you need that export anyways?
Just went on the flow. Will change.

> > +#endif
> > +1: iretq
> >
> > .section __ex_table,"a"
> > - .quad iret_label,bad_iret
> > + .quad 1b, bad_iret
>
> iret_label seems more expressive to me than 1

fair.

> > + ENABLE_INTERRUPTS(CLBR_NONE)
>
> In many of the CLBR_NONEs there are actually some registers free;
> but it might be safer to keep it this way. But if some client can get
> significantly better code with one or two free registers it might
> be worthwhile to investigate.
That's exactly what I had in mind. I'd highly prefer to keep it this
way until it is merged, and we are sure all the rest is stable

> > - swapgs
> > + SWAPGS_NOSTACK
>
> There's still stack here

Yes, but it is not safe to use. I think Roasted addressed it later on.

> > paranoid_restore\trace:
> > RESTORE_ALL 8
> > - iretq
> > + INTERRUPT_RETURN
>
> I suspect Xen will need much more changes anyways because of its
> ring 3 guest. Are these changes sufficient for lguest?

Yes, they are sufficient for lguest.
Does any xen folks have any comment?

--
Glauber de Oliveira Costa.
"Free as in Freedom"
http://glommer.net

"The less confident you are, the more serious you have to act."
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2007-08-08 16:03    [W:0.356 / U:0.292 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site