Re: [RFC PATCH] Add CRC checksum for RCU lists

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Steven Rostedt
Date: Friday, September 21, 2007 - 2:32 pm

--
On Fri, 21 Sep 2007, Paul E. McKenney wrote:


Thanks :-)




true


Thanks, but this is still going to go through changes, from your comments
as well as your latest patches.


One reason was that the caller was an addition. I originally didn't have
it, but during my tests, the output was basically useless. It didn't give
any hint to where things went wrong, so I added it. The CRC is to check
the rcu is working, not really the checker itself.

Note, it helped us out lately with Peter's latest file_table patches in
-rt. With this patch applied, it triggered corruption. That was due to the
union in the fs.h between the llist and rcu_head there was a dependency
in the llist where the rcu_head would not grow. The llist can still do a
spin lock on the lock _after_ the item was added to the call_rcu. Because
of that union, the locking of the lock corrupted the crc. Set it to one.

You'll see patches from Peter soon to get rid of that dependency.


yep.


Paul, I'm disappointed in you. That number doesn't ring a bell at all??

(hint, ignore the 'C' that was added by me).


Why? probably because I was half asleep when writing it ;-)
Will fix.


I added that because during testing, it would flood the serial console. I
can modify this to whatever deems fit.  Perhaps more hits will give a
better clue to what went wrong. I could also just add a print_ratelimit to
it too.



Would you prefer the above or the print_ratelimit? Maybe 10 would be best.
I really don't have a preference.


I believe that I tried to keep all the checks done in the same locations
that could possible modify the lists. So they should be protect by the
same mechanism.  On the rcupreempt side, I made the checks within the
holding of the data lock (for when you see that patch ;-)


OK, will do.


Noted.


Yeah, I can scrap those initialization macros. That came about my first
attempt where I forgot to add the assignment to the call_rcu and it
obviously failed.  So I added these macros, and it stilled failed. Then I
saw the mistake I made, fixed it, and it worked. But I never removed these
macros.  I think we can just keep the crc as zero. That would also fail
the test. Hmm, maybe we should add a BAD_CRC number so that it will give
us a hint that something was initiazed incorrectly.


Yep, that was planned.


Good idea, will add.


yep


Paul, thanks for all the comments. I'll put out a new round of patches
after yours becomes offical (no "not for inclussion" statements).

-- Steve

-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[RFC PATCH] Add CRC checksum for RCU lists, Steven Rostedt, (Thu Sep 20, 11:34 am)
Re: [RFC PATCH] Add CRC checksum for RCU lists, Peter Zijlstra, (Fri Sep 21, 5:02 am)
Re: [RFC PATCH] Add CRC checksum for RCU lists, Steven Rostedt, (Fri Sep 21, 6:01 am)
Re: [RFC PATCH] Add CRC checksum for RCU lists, Jan Engelhardt, (Fri Sep 21, 6:16 am)
Re: [RFC PATCH] Add CRC checksum for RCU lists, Steven Rostedt, (Fri Sep 21, 6:27 am)
Re: [RFC PATCH] Add CRC checksum for RCU lists, Paul E. McKenney, (Fri Sep 21, 10:12 am)
Re: [RFC PATCH] Add CRC checksum for RCU lists, Steven Rostedt, (Fri Sep 21, 2:32 pm)
Re: [RFC PATCH] Add CRC checksum for RCU lists, Kyle Moffett, (Sat Sep 22, 12:04 am)
Re: [RFC PATCH] Add CRC checksum for RCU lists, Paul E. McKenney, (Sat Sep 22, 10:20 am)
Re: [RFC PATCH] Add CRC checksum for RCU lists, Paul E. McKenney, (Sat Sep 22, 10:59 am)