linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] Move read_mostly definition to asm/cache.h
@ 2006-01-11 17:33 Kyle McMartin
  2006-01-11 17:52 ` Linus Torvalds
  0 siblings, 1 reply; 5+ messages in thread
From: Kyle McMartin @ 2006-01-11 17:33 UTC (permalink / raw)
  To: torvalds; +Cc: linux-kernel

From: Kyle McMartin <kyle@parisc-linux.org>

Seems like needless clutter having a bunch of #if
defined(CONFIG_$ARCH) in include/linux/cache.h. Move the per
architecture section definition to asm/cache.h, and keep the
if-not-defined dummy case in linux/cache.h to catch architectures
which don't implement the section.

Verified that symbols still go in .data.read_mostly on parisc,
and the compile doesn't break.

Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>

---

I accidently committed this to an up-to-date master branch, as
I forgot to check out the temporary branch I was going to commit
it on. Swapping the sums from .git/refs/heads/{master,read_mostly}
wouldn't break anything, if the only different between the two was
this commit, right?

 include/asm-i386/cache.h    |    2 ++
 include/asm-ia64/cache.h    |    2 ++
 include/asm-parisc/cache.h  |    2 ++
 include/asm-sparc64/cache.h |    2 ++
 include/asm-x86_64/cache.h  |    2 ++
 include/linux/cache.h       |    4 +---
 6 files changed, 11 insertions(+), 3 deletions(-)

b7b3d524ba7fae865789ecc49b8ff660f5ef928b
diff --git a/include/asm-i386/cache.h b/include/asm-i386/cache.h
index 615911e..ca15c9c 100644
--- a/include/asm-i386/cache.h
+++ b/include/asm-i386/cache.h
@@ -10,4 +10,6 @@
 #define L1_CACHE_SHIFT	(CONFIG_X86_L1_CACHE_SHIFT)
 #define L1_CACHE_BYTES	(1 << L1_CACHE_SHIFT)
 
+#define __read_mostly __attribute__((__section__(".data.read_mostly")))
+
 #endif
diff --git a/include/asm-ia64/cache.h b/include/asm-ia64/cache.h
index 40dd251..f0a104d 100644
--- a/include/asm-ia64/cache.h
+++ b/include/asm-ia64/cache.h
@@ -25,4 +25,6 @@
 # define SMP_CACHE_BYTES	(1 << 3)
 #endif
 
+#define __read_mostly __attribute__((__section__(".data.read_mostly")))
+
 #endif /* _ASM_IA64_CACHE_H */
diff --git a/include/asm-parisc/cache.h b/include/asm-parisc/cache.h
index 93f179f..ae50f8e 100644
--- a/include/asm-parisc/cache.h
+++ b/include/asm-parisc/cache.h
@@ -29,6 +29,8 @@
 
 #define SMP_CACHE_BYTES L1_CACHE_BYTES
 
+#define __read_mostly __attribute__((__section__(".data.read_mostly")))
+
 extern void flush_data_cache_local(void *);  /* flushes local data-cache only */
 extern void flush_instruction_cache_local(void *); /* flushes local code-cache only */
 #ifdef CONFIG_SMP
diff --git a/include/asm-sparc64/cache.h b/include/asm-sparc64/cache.h
index f7d35a2..e9df17a 100644
--- a/include/asm-sparc64/cache.h
+++ b/include/asm-sparc64/cache.h
@@ -13,4 +13,6 @@
 #define        SMP_CACHE_BYTES_SHIFT	6
 #define        SMP_CACHE_BYTES		(1 << SMP_CACHE_BYTES_SHIFT) /* L2 cache line size. */
 
+#define __read_mostly __attribute__((__section__(".data.read_mostly")))
+
 #endif
diff --git a/include/asm-x86_64/cache.h b/include/asm-x86_64/cache.h
index b4a2401..f06f33a 100644
--- a/include/asm-x86_64/cache.h
+++ b/include/asm-x86_64/cache.h
@@ -10,4 +10,6 @@
 #define L1_CACHE_SHIFT	(CONFIG_X86_L1_CACHE_SHIFT)
 #define L1_CACHE_BYTES	(1 << L1_CACHE_SHIFT)
 
+#define __read_mostly __attribute__((__section__(".data.read_mostly")))
+
 #endif
diff --git a/include/linux/cache.h b/include/linux/cache.h
index d22e632..cc4b3aa 100644
--- a/include/linux/cache.h
+++ b/include/linux/cache.h
@@ -13,9 +13,7 @@
 #define SMP_CACHE_BYTES L1_CACHE_BYTES
 #endif
 
-#if defined(CONFIG_X86) || defined(CONFIG_SPARC64) || defined(CONFIG_IA64) || defined(CONFIG_PARISC)
-#define __read_mostly __attribute__((__section__(".data.read_mostly")))
-#else
+#ifndef __read_mostly
 #define __read_mostly
 #endif
 
-- 
1.0.GIT

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] Move read_mostly definition to asm/cache.h
  2006-01-11 17:33 [PATCH] Move read_mostly definition to asm/cache.h Kyle McMartin
@ 2006-01-11 17:52 ` Linus Torvalds
  2006-01-11 21:20   ` Junio C Hamano
  0 siblings, 1 reply; 5+ messages in thread
From: Linus Torvalds @ 2006-01-11 17:52 UTC (permalink / raw)
  To: Kyle McMartin; +Cc: linux-kernel



On Wed, 11 Jan 2006, Kyle McMartin wrote:
> 
> I accidently committed this to an up-to-date master branch, as
> I forgot to check out the temporary branch I was going to commit
> it on. Swapping the sums from .git/refs/heads/{master,read_mostly}
> wouldn't break anything, if the only different between the two was
> this commit, right?

Correct. The branch head files really are just plain ascii references to 
the top commit, you can rename branches by just renaming the file (and 
thus switch branches by just cross-renaming them, ie just switching the 
contents).

		Linus

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] Move read_mostly definition to asm/cache.h
  2006-01-11 17:52 ` Linus Torvalds
@ 2006-01-11 21:20   ` Junio C Hamano
  2006-01-12  5:36     ` Kyle McMartin
  0 siblings, 1 reply; 5+ messages in thread
From: Junio C Hamano @ 2006-01-11 21:20 UTC (permalink / raw)
  To: Kyle McMartin; +Cc: linux-kernel, Linus Torvalds

Linus Torvalds <torvalds@osdl.org> writes:

>> I accidently committed this to an up-to-date master branch, as
>> I forgot to check out the temporary branch I was going to commit
>> it on. Swapping the sums from .git/refs/heads/{master,read_mostly}
>> wouldn't break anything, if the only different between the two was
>> this commit, right?
>
> Correct. The branch head files really are just plain ascii references to 
> the top commit, you can rename branches by just renaming the file (and 
> thus switch branches by just cross-renaming them, ie just switching the 
> contents).

Careful.

If one of the swapped branches is your current branch
(i.e. pointed at by .git/HEAD), you need to remember to
switch that as well.

For example, after making the mistake of committing to "master":

	$ git commit ;# oops, to the master
        $ git show-branch origin master read_mostly
	!   [origin] latest update from Linus
         *  [master] latest for read_mostly
          ! [read_mostly] last update from Linus
        ---
         +  [master] latest for read_mostly
        +++ [origin] last update from Linus

Then swap heads:

	$ read_mostly_head=`cat .git/refs/heads/master`
        $ cat .git/refs/heads/read_mostly >.git/refs/heads/read_mostly
	$ echo "$read_mostly_head" >.git/refs/heads/read_mostly

At this point:

        * Your index file still matches $read_mostly_head
	* Your working tree matches your index file
	* Your .git/HEAD is pointing at .git/refs/heads/master

Essentially, you are (you want to be) in read_mostly branch, but
your .git/HEAD incorrectly says you are on the master branch.
So you would need:

	$ git symbolic-ref HEAD refs/heads/read_mostly

after swapping.  Then you would be on read_mostly branch.

        $ git show-branch origin master read_mostly
	!   [origin] latest update from Linus
         !  [master] last update from Linus
          * [read_mostly] latest for read_mostly
        ---
          + [read_mostly] latest for read_mostly
        +++ [origin] last update from Linus

BTW, would people object if I made the show-branch output like
this?


        $ git show-branch origin master read_mostly
	!   [origin] latest update from Linus
         !  [master] last update from Linus
          * [read_mostly] latest for read_mostly
        ---
          * [read_mostly] latest for read_mostly
        ++* [origin] last update from Linus



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] Move read_mostly definition to asm/cache.h
  2006-01-11 21:20   ` Junio C Hamano
@ 2006-01-12  5:36     ` Kyle McMartin
  2006-01-15  9:48       ` Junio C Hamano
  0 siblings, 1 reply; 5+ messages in thread
From: Kyle McMartin @ 2006-01-12  5:36 UTC (permalink / raw)
  To: Junio C Hamano; +Cc: Kyle McMartin, linux-kernel, Linus Torvalds

On Wed, Jan 11, 2006 at 01:20:27PM -0800, Junio C Hamano wrote:
> Essentially, you are (you want to be) in read_mostly branch, but
> your .git/HEAD incorrectly says you are on the master branch.
> So you would need:
> 
> 	$ git symbolic-ref HEAD refs/heads/read_mostly
> 
> after swapping.  Then you would be on read_mostly branch.
>

Alternatively, if I had (I haven't touched the tree, just format-patch'd
which looked right) used git-reset --hard HEAD and been up to date
(working tree and index file) with whatever ended up being pointed
to by HEAD, right?

I'll try to remember the symbolic-ref thing for next time, usually when
this happens I just blow away the last commit and try again, but I felt
adventurous today. :)

Cheers,
	Kyle

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] Move read_mostly definition to asm/cache.h
  2006-01-12  5:36     ` Kyle McMartin
@ 2006-01-15  9:48       ` Junio C Hamano
  0 siblings, 0 replies; 5+ messages in thread
From: Junio C Hamano @ 2006-01-15  9:48 UTC (permalink / raw)
  To: Kyle McMartin; +Cc: linux-kernel, Linus Torvalds

Kyle McMartin <kyle@parisc-linux.org> writes:

> Alternatively, if I had (I haven't touched the tree, just format-patch'd
> which looked right) used git-reset --hard HEAD and been up to date
> (working tree and index file) with whatever ended up being pointed
> to by HEAD, right?

Yes.

> I'll try to remember the symbolic-ref thing for next time, usually when
> this happens I just blow away the last commit and try again, but I felt
> adventurous today. :)

After making the mistake of committing to "master":

	$ git commit ;# oops, to the master
        $ git show-branch origin master read-mostly
	!  [origin] latest update from Linus
         * [master] latest for read-mostly
        --
         * [master] latest for read-mostly
        +* [origin] last update from Linus

you could do this, which would be easier to visualize:

	$ git branch read-mostly ;# may need branch "-f" if exists.
        $ git reset --hard HEAD^ ;# rewind the current head by one.

Which would give you this:

        $ git show-branch origin master read-mostly
	!   [origin] latest update from Linus
         *  [master] latest update from Linus
          ! [read-mostly] latest for read-mostly
        --
          ! [read-mostly] latest for read-mostly
        +*! [origin] last update from Linus


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2006-01-15  9:48 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-01-11 17:33 [PATCH] Move read_mostly definition to asm/cache.h Kyle McMartin
2006-01-11 17:52 ` Linus Torvalds
2006-01-11 21:20   ` Junio C Hamano
2006-01-12  5:36     ` Kyle McMartin
2006-01-15  9:48       ` Junio C Hamano

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).