Submit #2714

Spinlock changes

Added by dclink 2 months ago. Updated about 1 month ago.

Status:ClosedStart date:08/16/2014
Priority:NormalDue date:
Assignee:-% Done:

100%

Category:Kernel
Target version:3.9.x

Description

- Adding descry field to struct spin lock, changed initialiser and spin_init function

patch-spinlock.txt Magnifier (52.6 KB) dclink, 08/16/2014 03:03 PM

History

#1 Updated by dclink 2 months ago

  • Status changed from New to Resolved

#2 Updated by dclink 2 months ago

  • Status changed from Resolved to Feedback

#3 Updated by swildner about 1 month ago

I have looked at the patch, but it will not run with DEBUG_LOCKS in the kernel config. It gets stuck here right after entering the kernel from the loader, before the copyright messages and all. I guess it tries to kprintf() something at a point where kprintf() as such isn't usable yet. Have you tried it with DEBUG_LOCKS/DEBUG_LOCKS_LATENCY?

Furthermore, I've changed the following things in the patch:

* Move descr to the bottom of struct spinlock at Matt's request.

* Change the argument order of SPINLOCK_INITIALIZER() to match spin_init()'s order, i.e. "descr" becomes the second argument.

* Fix a broken kprintf() in usched_dfly.c.

* Move some kprintf()s around for cosmetic reasons.

* Adjust indent.

The new patch is here -> http://leaf.dragonflybsd.org/~swildner/spinlock_descr.diff

#4 Updated by dclink about 1 month ago

hi , thanks for review and above all the fix. I ve tested only DEBUG_LOCK_LATENCY sorry for the inconveniency, i ll be more careful for next.

#5 Updated by swildner about 1 month ago

I have committed the bulk of your patch to master (http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/ba87a4ab252df80acecfc25acfd9e406ea7f4c93), which is everything except the kprintf()s.

Do you want to submit a new patch for the kprintf()s? I am not 100% which make sense but right now there are two issues:

* Without any further options, it prints the "choose worst queue.." messages frequently on normal operation (like booting and building world for example). Does it indicate an issue with usched_*?
* With DEBUG_LOCKS, the system will not boot at all, presumably due to wanting to kprintf() too early, I guess from one of the messages in spinlock2.h

Thanks,
Sascha

#6 Updated by dclink about 1 month ago

No it is ok like this it was more for using new descry field than anything else so it is probably better like this,

Thanks.
David CARLIER

#7 Updated by swildner about 1 month ago

  • Status changed from Feedback to Closed

Thanks, pushed (ba87a4ab252df80acecfc25acfd9e406ea7f4c93)

Also available in: Atom PDF