mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* Re: reiser4 merging action list
       [not found]           ` <42C084F1.70607@namesys.com.suse.lists.linux.kernel>
@ 2005-06-28  2:58             ` Andi Kleen
  2005-06-28  8:37               ` Vladimir Saveliev
  0 siblings, 1 reply; 11+ messages in thread
From: Andi Kleen @ 2005-06-28  2:58 UTC (permalink / raw)
  To: Hans Reiser; +Cc: linux-kernel, reiserfs-list, akpm, hch

Hans Reiser <reiser@namesys.com> writes:

>    * metafiles should be disabled until we can present code that works
> right.  Half the list thinks we cannot solve the cycles problem ever. 
> Disable metafiles and postpone problem until working code, or the
> failure to produce it, makes it possible to do more than rant at each
> other.  This is currently already done in the -mm patches, but is
> mentioned lest someone think it forgotten.
> 
>    * update the locking documentation
> 
> Probably I forget something.

These are all big picture issues, but I think some low level attention to
the individual code is still needed.

Some stuff that stood out from a very quick look:

I would like for the custom spin lock debugging (spin_macros.h) and
profiling code to be removed (prof.[ch], spinprof.[ch]). Such code shouldn't 
be in specific subsystems. 

The division functions in lib.h are useless IMHO, both callers seem
to use divide by a power of two. And gcc supports shift in 64bit
fine in the kernel. Can you remove that please? 

statcnt.h: This is completely useless because you don't align
the individual fields for cache lines - so you will still
have false sharing everywhere. Also using NR_CPUS is nasty
because it can be very big - num_possible_cpus() is better. 
It should use the new dynamic per cpu allocator.

Best you just remove it for now and use atomic_t and readd properly
when you do real SMP tuning with measurements.

debug.[ch]: A lot of these functions like "schedulable" are name space
space polluting. 
reiser4_kmalloc() such wrappers are deprecated. Please remove.
xmemset et.al should be replaced with the normal functions everywhere

Best would be probably to remove most of these files for submission.

What is reiser4_internal? Can't you just use static like
everybody else?

status_flags.c: Please remove that CONFIG_FRAME_POINTER code.
In general i think it would be better if you removed that 
"private mini crashdumping".

Is there any reason you can't just use wait queues like everybody
else instead of these reimplemented condition variables in kcond.[ch]?

In general it would be good if someone experienced not from the reiser team
would read the whole source and looks for obvious problems
(I didn't, just mentioning stuff I from a quick look at some support
files) 

-Andi


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

* Re: reiser4 merging action list
  2005-06-28  2:58             ` reiser4 merging action list Andi Kleen
@ 2005-06-28  8:37               ` Vladimir Saveliev
  2005-06-28  9:11                 ` Andi Kleen
  0 siblings, 1 reply; 11+ messages in thread
From: Vladimir Saveliev @ 2005-06-28  8:37 UTC (permalink / raw)
  To: Andi Kleen
  Cc: Hans Reiser, linux-kernel, reiserfs-list, Andrew Morton,
	Christoph Hellwig

Hello

On Tue, 2005-06-28 at 06:58, Andi Kleen wrote:
> Hans Reiser <reiser@namesys.com> writes:
> 
> >    * metafiles should be disabled until we can present code that works
> > right.  Half the list thinks we cannot solve the cycles problem ever. 
> > Disable metafiles and postpone problem until working code, or the
> > failure to produce it, makes it possible to do more than rant at each
> > other.  This is currently already done in the -mm patches, but is
> > mentioned lest someone think it forgotten.
> > 
> >    * update the locking documentation
> > 
> > Probably I forget something.
> 
> These are all big picture issues, but I think some low level attention to
> the individual code is still needed.
> 
> Some stuff that stood out from a very quick look:
> 
> I would like for the custom spin lock debugging (spin_macros.h) and
> profiling code to be removed (prof.[ch], spinprof.[ch]). Such code shouldn't 
> be in specific subsystems. 
> 
sorry, Andi, I guess you are looking at something old. Reiser4 does not
have neither prof.[ch], nor spinprof.[ch] and we removed already some
debugging code from spin_macros.h.

> The division functions in lib.h are useless IMHO, both callers seem
> to use divide by a power of two. And gcc supports shift in 64bit
> fine in the kernel. Can you remove that please? 
> 
ok

> statcnt.h: This is completely useless because you don't align
> the individual fields for cache lines - so you will still
> have false sharing everywhere. Also using NR_CPUS is nasty
> because it can be very big - num_possible_cpus() is better. 
> It should use the new dynamic per cpu allocator.
> 
statcnt.h is already removed.

> Best you just remove it for now and use atomic_t and readd properly
> when you do real SMP tuning with measurements.
> 
> debug.[ch]: A lot of these functions like "schedulable" are name space
> space polluting. 
> reiser4_kmalloc() such wrappers are deprecated. Please remove.
ok
> xmemset et.al should be replaced with the normal functions everywhere
> 
done.

> Best would be probably to remove most of these files for submission.
> 
> What is reiser4_internal? Can't you just use static like
> everybody else?

ok

> status_flags.c: Please remove that CONFIG_FRAME_POINTER code.
> In general i think it would be better if you removed that 
> "private mini crashdumping".

ok

> 
> Is there any reason you can't just use wait queues like everybody
> else instead of these reimplemented condition variables in kcond.[ch]?
> 
I will investigate that

> In general it would be good if someone experienced not from the reiser team
> would read the whole source and looks for obvious problems
> (I didn't, just mentioning stuff I from a quick look at some support
> files) 
> 
> -Andi
> 
> 


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

* Re: reiser4 merging action list
  2005-06-28  8:37               ` Vladimir Saveliev
@ 2005-06-28  9:11                 ` Andi Kleen
  2005-06-28  9:16                   ` Artem B. Bityuckiy
  0 siblings, 1 reply; 11+ messages in thread
From: Andi Kleen @ 2005-06-28  9:11 UTC (permalink / raw)
  To: Vladimir Saveliev
  Cc: Andi Kleen, Hans Reiser, linux-kernel, reiserfs-list,
	Andrew Morton, Christoph Hellwig

On Tue, Jun 28, 2005 at 12:37:11PM +0400, Vladimir Saveliev wrote:
> have neither prof.[ch], nor spinprof.[ch] and we removed already some
> debugging code from spin_macros.h.

Yes, i was looking at some older tree with reiser4. Sorry, just
ignore what is already done.

But still spin_macros.h should be completely removed imho. Such
custom lock wrappers are strongly discouraged because it 
makes it hard for others to read your code.


> > statcnt.h: This is completely useless because you don't align
> > the individual fields for cache lines - so you will still
> > have false sharing everywhere. Also using NR_CPUS is nasty
> > because it can be very big - num_possible_cpus() is better. 
> > It should use the new dynamic per cpu allocator.
> > 
> statcnt.h is already removed.

Great.

-Andi

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

* Re: reiser4 merging action list
  2005-06-28  9:11                 ` Andi Kleen
@ 2005-06-28  9:16                   ` Artem B. Bityuckiy
  0 siblings, 0 replies; 11+ messages in thread
From: Artem B. Bityuckiy @ 2005-06-28  9:16 UTC (permalink / raw)
  To: Andi Kleen
  Cc: Vladimir Saveliev, Hans Reiser, linux-kernel, reiserfs-list,
	Andrew Morton, Christoph Hellwig

Andi Kleen wrote:
> Yes, i was looking at some older tree with reiser4. Sorry, just
> ignore what is already done.
> 
> But still spin_macros.h should be completely removed imho. Such
> custom lock wrappers are strongly discouraged because it 
> makes it hard for others to read your code.
>
I may comfirm that this makes Reiser4 very difficult to investigate.
Ctags doesn't work with that too..

-- 
Best Regards,
Artem B. Bityuckiy,
St.-Petersburg, Russia.

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

* Re: reiser4 merging action list
  2005-06-29  6:18                 ` Pekka Enberg
@ 2005-06-29 22:59                   ` Hans Reiser
  0 siblings, 0 replies; 11+ messages in thread
From: Hans Reiser @ 2005-06-29 22:59 UTC (permalink / raw)
  To: Pekka Enberg
  Cc: Andrew Morton, tytso, mjt, vonbrand, ninja, alan, jgarzik, hch,
	linux-kernel, reiserfs-list, lord, vs, Pekka Enberg,
	Nikita Danilov

Pekka Enberg wrote:

>Andrew Morton wrote:
>  
>
>>>There's also the custom list, hash and debug code.  We should either
>>>
>>>a) remove them or
>>>
>>>b) generify them and submit as standalone works or
>>>
>>>c) justify them as custom-to-reiser4 and leave them as-is.
>>>      
>>>
>
>On 6/29/05, Hans Reiser <reiser@namesys.com> wrote:
>  
>
>>either b) or c) is ok with me for the list code.  The debug code should
>>be c) I think.
>>
>>Probably vs can offer a more detailed and accurate opinion,
>>    
>>
>
>I completely agree that the current state of the generic hashing
>facilities is somewhat poor but I fail to see why you can't use
><linux/list.h>.
>  
>
I'll let vs and maybe nikita comment.

>As for the debugging code, I would love to see that turned into
>something generic (every subsystem has their own now) but it is
>definitely not something that should stop you from merging.
>
>                                Pekka
>
>
>  
>
If I encourage you to make a patch, is that ok of me? 

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

* Re: reiser4 merging action list
  2005-06-29  5:41               ` Hans Reiser
@ 2005-06-29  6:18                 ` Pekka Enberg
  2005-06-29 22:59                   ` Hans Reiser
  0 siblings, 1 reply; 11+ messages in thread
From: Pekka Enberg @ 2005-06-29  6:18 UTC (permalink / raw)
  To: Hans Reiser
  Cc: Andrew Morton, tytso, mjt, vonbrand, ninja, alan, jgarzik, hch,
	linux-kernel, reiserfs-list, lord, vs, Pekka Enberg

Andrew Morton wrote:
> > There's also the custom list, hash and debug code.  We should either
> >
> > a) remove them or
> >
> > b) generify them and submit as standalone works or
> >
> > c) justify them as custom-to-reiser4 and leave them as-is.

On 6/29/05, Hans Reiser <reiser@namesys.com> wrote:
> either b) or c) is ok with me for the list code.  The debug code should
> be c) I think.
> 
> Probably vs can offer a more detailed and accurate opinion,

I completely agree that the current state of the generic hashing
facilities is somewhat poor but I fail to see why you can't use
<linux/list.h>.

As for the debugging code, I would love to see that turned into
something generic (every subsystem has their own now) but it is
definitely not something that should stop you from merging.

                                Pekka

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

* Re: reiser4 merging action list
  2005-06-27 23:23             ` Andrew Morton
@ 2005-06-29  5:41               ` Hans Reiser
  2005-06-29  6:18                 ` Pekka Enberg
  0 siblings, 1 reply; 11+ messages in thread
From: Hans Reiser @ 2005-06-29  5:41 UTC (permalink / raw)
  To: Andrew Morton
  Cc: tytso, mjt, vonbrand, ninja, alan, jgarzik, hch, linux-kernel,
	reiserfs-list, lord, vs

Andrew Morton wrote:

>Hans Reiser <reiser@namesys.com> wrote:
>  
>
>>Andrew asked me to put together a list of things that need to be done
>>before merging:
>>    
>>
>
>Thanks.
>
>As I said to Hans, if we can get a list of bullet-point actions nailed down
>and agreed to then we have an uncontroversial path to happiness and a
>merge.  Let's get down and concentrate on technical specifics.
>
>Hans, please maintain this list and republish it as we work through things.
>
>  
>
>>    * VFS will dispatch directly to the method of the plugin for the
>>*_operations methods.  This requires duplicating to all plugin methods
>>the common code currently used by all reiser4 plugins for a given
>>method.  It has the desirable side effect of making the methods more
>>fully self-contained, which is somethng I had wanted two years ago and
>>was a little sad to not get, and the cost of duplicating some code. 
>>Since not all plugin methods are *_operations, it means we have two
>>structures with duplicated data, and duplicate data that must be in sync
>>at all times is classical badness in programming technique (see Codd and
>>normalization).                                 vs owns this task
>>
>>    * review all sparse complaints, and revise as appropriate. 
>>
>>    * panic and code beauty: everyone agrees that having function, file,
>>and line added to reiser4_panic output hurts nothing (I hope).  Everyone
>>agrees that restarting the machine without an error message seems like a
>>useless option to allow.   Much else was argued, not sure if anything
>>was a consensus view.  Various detail improvements were suggested by
>>Pecca, and I agreed with half of them.
>>
>>
>>   * metafiles should be disabled until we can present code that works
>>right.  Half the list thinks we cannot solve the cycles problem ever. 
>>Disable metafiles and postpone problem until working code, or the
>>failure to produce it, makes it possible to do more than rant at each
>>other.  This is currently already done in the -mm patches, but is
>>mentioned lest someone think it forgotten.
>>
>>   * update the locking documentation
>>
>>    
>>
>
>There's also the custom list, hash and debug code.  We should either
>
>a) remove them or
>
>b) generify them and submit as standalone works or
>
>c) justify them as custom-to-reiser4 and leave them as-is.
>
>
>
>
>  
>
either b) or c) is ok with me for the list code.  The debug code should
be c) I think.

Probably vs can offer a more detailed and accurate opinion,

Hans

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

* Re: reiser4 merging action list
  2005-06-27 23:00           ` reiser4 merging action list Hans Reiser
  2005-06-27 23:23             ` Andrew Morton
  2005-06-28  9:41             ` Christoph Hellwig
@ 2005-06-28  9:48             ` Adrian Bunk
  2 siblings, 0 replies; 11+ messages in thread
From: Adrian Bunk @ 2005-06-28  9:48 UTC (permalink / raw)
  To: Hans Reiser
  Cc: Theodore Ts'o, Markus T?rnqvist, Horst von Brand,
	David Masover, Alan Cox, Jeff Garzik, Christoph Hellwig,
	Andrew Morton, Linux Kernel Mailing List, ReiserFS List,
	Steve Lord

On Mon, Jun 27, 2005 at 04:00:01PM -0700, Hans Reiser wrote:
> 
> Andrew asked me to put together a list of things that need to be done
> before merging:
>...
> Probably I forget something.


  * remove the dependency on !4KSTACKS


> Best,
> 
> Hans

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed


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

* Re: reiser4 merging action list
  2005-06-27 23:00           ` reiser4 merging action list Hans Reiser
  2005-06-27 23:23             ` Andrew Morton
@ 2005-06-28  9:41             ` Christoph Hellwig
  2005-06-28  9:48             ` Adrian Bunk
  2 siblings, 0 replies; 11+ messages in thread
From: Christoph Hellwig @ 2005-06-28  9:41 UTC (permalink / raw)
  To: Hans Reiser
  Cc: Theodore Ts'o, Markus T?rnqvist, Horst von Brand,
	David Masover, Alan Cox, Jeff Garzik, Andrew Morton,
	Linux Kernel Mailing List, ReiserFS List, Steve Lord

On Mon, Jun 27, 2005 at 04:00:01PM -0700, Hans Reiser wrote:
> 
> Andrew asked me to put together a list of things that need to be done
> before merging:

...

> Probably I forget something.

I've started to do a very basic look over the tree and there's a few
more things that spring to mind:

 - cpp abuse.  There's quite a lot of really odd macros - the typesafe_list,
   typesafe_hash stuff is mentioned already, but there's really horrible
   stuff like _INIT_ and _DONE_ bits in init_super.c, and the wrappers for
   plugin method invocations.
 - endianess handling.  The d* types are a lovely attempt to make sure
   you're not missing endianess conversions.  We have a more general
   way to ensure that now using sparse, that's the __le* / __be* types.
   Try running sparse -Wbitwise to find places you'll need that annotations
   (after the normal sparse warnings are fixed, else you'll have a hard
   time seeing them I guess) - after that the single element struct thing
   can go away.  Also you're defining a CPU_IN_DISK_ORDER macro that's
   never used..
 - lease use kthread_* instead of kernel_thread() + lots of opencoding

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

* Re: reiser4 merging action list
  2005-06-27 23:00           ` reiser4 merging action list Hans Reiser
@ 2005-06-27 23:23             ` Andrew Morton
  2005-06-29  5:41               ` Hans Reiser
  2005-06-28  9:41             ` Christoph Hellwig
  2005-06-28  9:48             ` Adrian Bunk
  2 siblings, 1 reply; 11+ messages in thread
From: Andrew Morton @ 2005-06-27 23:23 UTC (permalink / raw)
  To: Hans Reiser
  Cc: tytso, mjt, vonbrand, ninja, alan, jgarzik, hch, linux-kernel,
	reiserfs-list, lord

Hans Reiser <reiser@namesys.com> wrote:
>
> 
> Andrew asked me to put together a list of things that need to be done
> before merging:

Thanks.

As I said to Hans, if we can get a list of bullet-point actions nailed down
and agreed to then we have an uncontroversial path to happiness and a
merge.  Let's get down and concentrate on technical specifics.

Hans, please maintain this list and republish it as we work through things.

>     * VFS will dispatch directly to the method of the plugin for the
> *_operations methods.  This requires duplicating to all plugin methods
> the common code currently used by all reiser4 plugins for a given
> method.  It has the desirable side effect of making the methods more
> fully self-contained, which is somethng I had wanted two years ago and
> was a little sad to not get, and the cost of duplicating some code. 
> Since not all plugin methods are *_operations, it means we have two
> structures with duplicated data, and duplicate data that must be in sync
> at all times is classical badness in programming technique (see Codd and
> normalization).                                 vs owns this task
> 
>     * review all sparse complaints, and revise as appropriate. 
> 
>     * panic and code beauty: everyone agrees that having function, file,
> and line added to reiser4_panic output hurts nothing (I hope).  Everyone
> agrees that restarting the machine without an error message seems like a
> useless option to allow.   Much else was argued, not sure if anything
> was a consensus view.  Various detail improvements were suggested by
> Pecca, and I agreed with half of them.
> 
> 
>    * metafiles should be disabled until we can present code that works
> right.  Half the list thinks we cannot solve the cycles problem ever. 
> Disable metafiles and postpone problem until working code, or the
> failure to produce it, makes it possible to do more than rant at each
> other.  This is currently already done in the -mm patches, but is
> mentioned lest someone think it forgotten.
> 
>    * update the locking documentation
> 

There's also the custom list, hash and debug code.  We should either

a) remove them or

b) generify them and submit as standalone works or

c) justify them as custom-to-reiser4 and leave them as-is.



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

* Re: reiser4 merging action list
  2005-06-27 21:26         ` Theodore Ts'o
@ 2005-06-27 23:00           ` Hans Reiser
  2005-06-27 23:23             ` Andrew Morton
                               ` (2 more replies)
  0 siblings, 3 replies; 11+ messages in thread
From: Hans Reiser @ 2005-06-27 23:00 UTC (permalink / raw)
  To: Theodore Ts'o
  Cc: Markus T?rnqvist, Horst von Brand, David Masover, Alan Cox,
	Jeff Garzik, Christoph Hellwig, Andrew Morton,
	Linux Kernel Mailing List, ReiserFS List, Steve Lord


Andrew asked me to put together a list of things that need to be done
before merging:

    * VFS will dispatch directly to the method of the plugin for the
*_operations methods.  This requires duplicating to all plugin methods
the common code currently used by all reiser4 plugins for a given
method.  It has the desirable side effect of making the methods more
fully self-contained, which is somethng I had wanted two years ago and
was a little sad to not get, and the cost of duplicating some code. 
Since not all plugin methods are *_operations, it means we have two
structures with duplicated data, and duplicate data that must be in sync
at all times is classical badness in programming technique (see Codd and
normalization).                                 vs owns this task

    * review all sparse complaints, and revise as appropriate. 

    * panic and code beauty: everyone agrees that having function, file,
and line added to reiser4_panic output hurts nothing (I hope).  Everyone
agrees that restarting the machine without an error message seems like a
useless option to allow.   Much else was argued, not sure if anything
was a consensus view.  Various detail improvements were suggested by
Pecca, and I agreed with half of them.


   * metafiles should be disabled until we can present code that works
right.  Half the list thinks we cannot solve the cycles problem ever. 
Disable metafiles and postpone problem until working code, or the
failure to produce it, makes it possible to do more than rant at each
other.  This is currently already done in the -mm patches, but is
mentioned lest someone think it forgotten.

   * update the locking documentation

Probably I forget something.

Best,

Hans

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

end of thread, other threads:[~2005-06-29 23:00 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <42BB7B32.4010100@slaphack.com.suse.lists.linux.kernel>
     [not found] ` <200506240334.j5O3YowB008100@laptop11.inf.utfsm.cl.suse.lists.linux.kernel>
     [not found]   ` <20050627092138.GD11013@nysv.org.suse.lists.linux.kernel>
     [not found]     ` <20050627124255.GB6280@thunk.org.suse.lists.linux.kernel>
     [not found]       ` <42C0578F.7030608@namesys.com.suse.lists.linux.kernel>
     [not found]         ` <20050627212628.GB27805@thunk.org.suse.lists.linux.kernel>
     [not found]           ` <42C084F1.70607@namesys.com.suse.lists.linux.kernel>
2005-06-28  2:58             ` reiser4 merging action list Andi Kleen
2005-06-28  8:37               ` Vladimir Saveliev
2005-06-28  9:11                 ` Andi Kleen
2005-06-28  9:16                   ` Artem B. Bityuckiy
2005-06-24  3:17 reiser4 plugins David Masover
2005-06-24  3:34 ` Horst von Brand
2005-06-27  9:21   ` Markus   Törnqvist
2005-06-27 12:42     ` Theodore Ts'o
2005-06-27 19:46       ` Hans Reiser
2005-06-27 21:26         ` Theodore Ts'o
2005-06-27 23:00           ` reiser4 merging action list Hans Reiser
2005-06-27 23:23             ` Andrew Morton
2005-06-29  5:41               ` Hans Reiser
2005-06-29  6:18                 ` Pekka Enberg
2005-06-29 22:59                   ` Hans Reiser
2005-06-28  9:41             ` Christoph Hellwig
2005-06-28  9:48             ` Adrian Bunk

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®