* Re: [Lhms-devel] [PATCH 4/4] V4 ia64 SPARSEMEM - SPARSEMEM code
@ 2005-09-22 16:36 Dave Hansen
2005-09-22 17:13 ` [Lhms-devel] [PATCH 4/4] V4 ia64 SPARSEMEM - SPARSEMEM code changes Matthew Wilcox
` (4 more replies)
0 siblings, 5 replies; 6+ messages in thread
From: Dave Hansen @ 2005-09-22 16:36 UTC (permalink / raw)
To: linux-ia64
On Thu, 2005-09-22 at 12:14 -0400, Bob Picco wrote:
> This patch is the minimal set of changes required by ia64 to use
> SPARSEMEM.
I have a couple of little style comments.
> +#ifdef CONFIG_SPARSEMEM
> + efi_memmap_walk(register_sparse_mem, NULL);
> +#endif
> + sparse_init();
> +
> efi_memmap_walk(filter_rsvd_memory, count_node_pages);
>
> +#ifdef CONFIG_VIRTUAL_MEM_MAP
> vmalloc_end -= PAGE_ALIGN(max_low_pfn * sizeof(struct page));
> vmem_map = (struct page *) vmalloc_end;
> efi_memmap_walk(create_mem_map_page_table, NULL);
> printk("Virtual mem_map starts at 0x%p\n", vmem_map);
> +#endif
It would be nice if these kind of .c file #ifdefs could be broken out a
little more. For instance, you could make an arch_sparse_init() that
does all of the sparsemem bits, and make it a do{}while(0) when !
CONFIG_SPARSEMEM.
> for_each_online_node(node) {
> memset(zones_size, 0, sizeof(zones_size));
> @@ -690,7 +722,9 @@ void __init paging_init(void)
>
> pfn_offset = mem_data[node].min_pfn;
>
> +#ifdef CONFIG_VIRTUAL_MEM_MAP
> NODE_DATA(node)->node_mem_map = vmem_map + pfn_offset;
> +#endif
Is CONFIG_FLAT_NODE_MEM_MAP more appropriate here? That's how
->node_mem_map is #ifdef'd to begin with in mmzone.h.
> --- linux-2.6.14-rc2.orig/arch/ia64/mm/numa.c 2005-09-21 12:28:49.000000000 -0400
> +++ linux-2.6.14-rc2/arch/ia64/mm/numa.c 2005-09-21 12:29:05.000000000 -0400
> @@ -45,5 +45,30 @@ paddr_to_nid(unsigned long paddr)
> paddr < node_memblk[i].start_paddr + node_memblk[i].size)
> break;
>
> - return (i < num_node_memblks) ? node_memblk[i].nid : (num_node_memblks ? -1 : 0);
> + return (i < num_node_memblks) ?
> + node_memblk[i].nid : (num_node_memblks ? -1 : 0);
> }
Looks like just a whitespace change.
-- Dave
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [Lhms-devel] [PATCH 4/4] V4 ia64 SPARSEMEM - SPARSEMEM code changes
2005-09-22 16:36 [Lhms-devel] [PATCH 4/4] V4 ia64 SPARSEMEM - SPARSEMEM code Dave Hansen
@ 2005-09-22 17:13 ` Matthew Wilcox
2005-09-22 17:59 ` Bob Picco
` (3 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Matthew Wilcox @ 2005-09-22 17:13 UTC (permalink / raw)
To: linux-ia64
On Thu, Sep 22, 2005 at 09:36:16AM -0700, Dave Hansen wrote:
> >
> > - return (i < num_node_memblks) ? node_memblk[i].nid : (num_node_memblks ? -1 : 0);
> > + return (i < num_node_memblks) ?
> > + node_memblk[i].nid : (num_node_memblks ? -1 : 0);
> > }
>
> Looks like just a whitespace change.
But really far less radical than it deserves ... nested conditional
expressions? Come on. How about:
if (i < num_node_memblks)
return node_memblk[i].nid;
if (num_node_memblks)
return -1;
return 0;
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [Lhms-devel] [PATCH 4/4] V4 ia64 SPARSEMEM - SPARSEMEM code changes
2005-09-22 16:36 [Lhms-devel] [PATCH 4/4] V4 ia64 SPARSEMEM - SPARSEMEM code Dave Hansen
2005-09-22 17:13 ` [Lhms-devel] [PATCH 4/4] V4 ia64 SPARSEMEM - SPARSEMEM code changes Matthew Wilcox
@ 2005-09-22 17:59 ` Bob Picco
2005-09-22 18:01 ` Bob Picco
` (2 subsequent siblings)
4 siblings, 0 replies; 6+ messages in thread
From: Bob Picco @ 2005-09-22 17:59 UTC (permalink / raw)
To: linux-ia64
Dave Hansen wrote: [Thu Sep 22 2005, 12:36:16PM EDT]
> On Thu, 2005-09-22 at 12:14 -0400, Bob Picco wrote:
> > This patch is the minimal set of changes required by ia64 to use
> > SPARSEMEM.
>
> I have a couple of little style comments.
>
> > +#ifdef CONFIG_SPARSEMEM
> > + efi_memmap_walk(register_sparse_mem, NULL);
> > +#endif
> > + sparse_init();
> > +
> > efi_memmap_walk(filter_rsvd_memory, count_node_pages);
> >
> > +#ifdef CONFIG_VIRTUAL_MEM_MAP
> > vmalloc_end -= PAGE_ALIGN(max_low_pfn * sizeof(struct page));
> > vmem_map = (struct page *) vmalloc_end;
> > efi_memmap_walk(create_mem_map_page_table, NULL);
> > printk("Virtual mem_map starts at 0x%p\n", vmem_map);
> > +#endif
>
> It would be nice if these kind of .c file #ifdefs could be broken out a
> little more. For instance, you could make an arch_sparse_init() that
> does all of the sparsemem bits, and make it a do{}while(0) when !
> CONFIG_SPARSEMEM.
I could do this. It would eliminate one conditional. Eventually I'm hope
for only SPARSEMEM but that is a ways off.
>
> > for_each_online_node(node) {
> > memset(zones_size, 0, sizeof(zones_size));
> > @@ -690,7 +722,9 @@ void __init paging_init(void)
> >
> > pfn_offset = mem_data[node].min_pfn;
> >
> > +#ifdef CONFIG_VIRTUAL_MEM_MAP
> > NODE_DATA(node)->node_mem_map = vmem_map + pfn_offset;
> > +#endif
>
> Is CONFIG_FLAT_NODE_MEM_MAP more appropriate here? That's how
> ->node_mem_map is #ifdef'd to begin with in mmzone.h.
Well I think this is doable but probaably shouldn't. This code is very
specific to CONFIG_VIRTUAL_MEM_MAP.
>
> > --- linux-2.6.14-rc2.orig/arch/ia64/mm/numa.c 2005-09-21 12:28:49.000000000 -0400
> > +++ linux-2.6.14-rc2/arch/ia64/mm/numa.c 2005-09-21 12:29:05.000000000 -0400
> > @@ -45,5 +45,30 @@ paddr_to_nid(unsigned long paddr)
> > paddr < node_memblk[i].start_paddr + node_memblk[i].size)
> > break;
> >
> > - return (i < num_node_memblks) ? node_memblk[i].nid : (num_node_memblks ? -1 : 0);
> > + return (i < num_node_memblks) ?
> > + node_memblk[i].nid : (num_node_memblks ? -1 : 0);
> > }
>
> Looks like just a whitespace change.
Oh dam. This shouldn't have been introduced. It's not part of SPARSEMEM.
>
> -- Dave
bob
>
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [Lhms-devel] [PATCH 4/4] V4 ia64 SPARSEMEM - SPARSEMEM code changes
2005-09-22 16:36 [Lhms-devel] [PATCH 4/4] V4 ia64 SPARSEMEM - SPARSEMEM code Dave Hansen
2005-09-22 17:13 ` [Lhms-devel] [PATCH 4/4] V4 ia64 SPARSEMEM - SPARSEMEM code changes Matthew Wilcox
2005-09-22 17:59 ` Bob Picco
@ 2005-09-22 18:01 ` Bob Picco
2005-09-22 18:05 ` [Lhms-devel] [PATCH 4/4] V4 ia64 SPARSEMEM - SPARSEMEM code Dave Hansen
2005-09-22 18:47 ` [Lhms-devel] [PATCH 4/4] V4 ia64 SPARSEMEM - SPARSEMEM code changes Bob Picco
4 siblings, 0 replies; 6+ messages in thread
From: Bob Picco @ 2005-09-22 18:01 UTC (permalink / raw)
To: linux-ia64
Matthew Wilcox wrote: [Thu Sep 22 2005, 01:13:40PM EDT]
> On Thu, Sep 22, 2005 at 09:36:16AM -0700, Dave Hansen wrote:
> > >
> > > - return (i < num_node_memblks) ? node_memblk[i].nid : (num_node_memblks ? -1 : 0);
> > > + return (i < num_node_memblks) ?
> > > + node_memblk[i].nid : (num_node_memblks ? -1 : 0);
> > > }
> >
> > Looks like just a whitespace change.
>
> But really far less radical than it deserves ... nested conditional
> expressions? Come on. How about:
>
> if (i < num_node_memblks)
> return node_memblk[i].nid;
> if (num_node_memblks)
> return -1;
> return 0;
Yup looks better. As I said to Dave, it shouldn't have been introduced. So this
is a nice patch suggestion for clean up but later.
bob
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [Lhms-devel] [PATCH 4/4] V4 ia64 SPARSEMEM - SPARSEMEM code
2005-09-22 16:36 [Lhms-devel] [PATCH 4/4] V4 ia64 SPARSEMEM - SPARSEMEM code Dave Hansen
` (2 preceding siblings ...)
2005-09-22 18:01 ` Bob Picco
@ 2005-09-22 18:05 ` Dave Hansen
2005-09-22 18:47 ` [Lhms-devel] [PATCH 4/4] V4 ia64 SPARSEMEM - SPARSEMEM code changes Bob Picco
4 siblings, 0 replies; 6+ messages in thread
From: Dave Hansen @ 2005-09-22 18:05 UTC (permalink / raw)
To: linux-ia64
On Thu, 2005-09-22 at 13:59 -0400, Bob Picco wrote:
> > > +#ifdef CONFIG_VIRTUAL_MEM_MAP
> > > NODE_DATA(node)->node_mem_map = vmem_map + pfn_offset;
> > > +#endif
> >
> > Is CONFIG_FLAT_NODE_MEM_MAP more appropriate here? That's how
> > ->node_mem_map is #ifdef'd to begin with in mmzone.h.
>
> Well I think this is doable but probaably shouldn't. This code is very
> specific to CONFIG_VIRTUAL_MEM_MAP.
FLAT_NODE_MEM_MAP depends on only !SPARSEMEM, as does VIRTUAL_MEM_MAP.
So, I guess they're functionally equivalent right now. It might be most
nice to at least add a comment, saying that it actually depends on both.
-- Dave
^ permalink raw reply [flat|nested] 6+ messages in thread* Re: [Lhms-devel] [PATCH 4/4] V4 ia64 SPARSEMEM - SPARSEMEM code changes
2005-09-22 16:36 [Lhms-devel] [PATCH 4/4] V4 ia64 SPARSEMEM - SPARSEMEM code Dave Hansen
` (3 preceding siblings ...)
2005-09-22 18:05 ` [Lhms-devel] [PATCH 4/4] V4 ia64 SPARSEMEM - SPARSEMEM code Dave Hansen
@ 2005-09-22 18:47 ` Bob Picco
4 siblings, 0 replies; 6+ messages in thread
From: Bob Picco @ 2005-09-22 18:47 UTC (permalink / raw)
To: linux-ia64
Dave Hansen wrote: [Thu Sep 22 2005, 02:05:07PM EDT]
> On Thu, 2005-09-22 at 13:59 -0400, Bob Picco wrote:
> > > > +#ifdef CONFIG_VIRTUAL_MEM_MAP
> > > > NODE_DATA(node)->node_mem_map = vmem_map + pfn_offset;
> > > > +#endif
> > >
> > > Is CONFIG_FLAT_NODE_MEM_MAP more appropriate here? That's how
> > > ->node_mem_map is #ifdef'd to begin with in mmzone.h.
> >
> > Well I think this is doable but probaably shouldn't. This code is very
> > specific to CONFIG_VIRTUAL_MEM_MAP.
>
> FLAT_NODE_MEM_MAP depends on only !SPARSEMEM, as does VIRTUAL_MEM_MAP.
> So, I guess they're functionally equivalent right now. It might be most
> nice to at least add a comment, saying that it actually depends on both.
>
>
>
> -- Dave
>
Okay. I'll add a comment before VIRTUAL_MEM_MAP in Kconfig file. That will
cover all uses of VIRTUAL_MEM_MAP.
thanks,
bob
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2005-09-22 18:47 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-09-22 16:36 [Lhms-devel] [PATCH 4/4] V4 ia64 SPARSEMEM - SPARSEMEM code Dave Hansen
2005-09-22 17:13 ` [Lhms-devel] [PATCH 4/4] V4 ia64 SPARSEMEM - SPARSEMEM code changes Matthew Wilcox
2005-09-22 17:59 ` Bob Picco
2005-09-22 18:01 ` Bob Picco
2005-09-22 18:05 ` [Lhms-devel] [PATCH 4/4] V4 ia64 SPARSEMEM - SPARSEMEM code Dave Hansen
2005-09-22 18:47 ` [Lhms-devel] [PATCH 4/4] V4 ia64 SPARSEMEM - SPARSEMEM code changes Bob Picco
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.