Re: Why is get_current() not const function?

From: Linus Torvalds (torvalds@transmeta.com)
Date: Mon Mar 17 2003 - 01:26:26 EST


In article <20030313061926.S3910@devserv.devel.redhat.com>,
Jakub Jelinek <jakub@redhat.com> wrote:
>
>Anyone remembers why get_current function (on arches which define
>current to get_current()) is not const

Because it makes no difference at all on x86, since gcc will ignore
"const" for inline functions. At least that used to be true.

> and why on x86-64
>the movq %%gs:0, %0 inline asm is volatile with "memory" clobber?

Can't help you on that one, but it looks like it uses various helper
functions for doing the x86-64 per-processor data structures, and I bet
those helper functions are shared by _other_ users who definitely want
to have their data properly re-read. Ie "current()" may be constant in
process context, but that sure isn't true about a lot of other things in
the per-processor data structures.

                Linus
-
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/



This archive was generated by hypermail 2b29 : Sun Mar 23 2003 - 22:00:19 EST