Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 5 Oct 2000 17:40:41 +0700 (ALMST)
From:      Boris Popov <bp@butya.kz>
To:        freebsd-current@freebsd.org
Cc:        freebsd-smp@freebsd.org
Subject:   Problems with kthread_exit() and SMPng
Message-ID:  <Pine.BSF.4.10.10010051724260.43806-200000@lion.butya.kz>

next in thread | raw e-mail | index | archive | help
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.
  Send mail to mime@docserver.cac.washington.edu for more info.

--0-1753296439-970742441=:43806
Content-Type: TEXT/PLAIN; charset=US-ASCII

	Hello,

	Currently I'm trying to make KLD which uses kernel threads
unloadable under recent -current. The prototype of functions looks like
this:

void
my_thread(void*arg)
{
	while(wearewanted) {
		do_something();
		tsleep();
	}
	exited = 1;
	kthread_exit(0);
}

void
my_unload()
{
	wearewanted = 0;
	while (!exited)
		tsleep(1sec);
}

	my_unload() function called from the module unload event which
issued from the kldunload() syscall.

	Unfortunately, kernel panics in the mtx_exit_hard() function.
After some examination I've found that two fields in the Giant mutex
structure set to unexpected values:
----
empty mtx_blocked for mutex Giant
mtx_contested not in any list for mutex Giant
----

	These messages printed by added diagnostics code. With this patch
(see attachment) it is possible to load and unload KLD without any
problems on UP machine except that the above messages printed. However,
I'm don't know if they are correct. (btw, 4.1 doesn't have this problem).

	Any ideas why this happened and how to fix it ?
--
Boris Popov
http://www.butya.kz/~bp/

--0-1753296439-970742441=:43806
Content-Type: TEXT/PLAIN; charset=US-ASCII; name="synch_machdep.diff"
Content-Transfer-Encoding: BASE64
Content-ID: <Pine.BSF.4.10.10010051740410.43806@lion.butya.kz>
Content-Description: 
Content-Disposition: attachment; filename="synch_machdep.diff"

SW5kZXg6IHN5bmNoX21hY2hkZXAuYw0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQ0KUkNTIGZpbGU6IC9ob21lL25jdnMvc3JjL3N5cy9pMzg2L2kzODYvc3lu
Y2hfbWFjaGRlcC5jLHYNCnJldHJpZXZpbmcgcmV2aXNpb24gMS41DQpkaWZm
IC11IC1yMS41IHN5bmNoX21hY2hkZXAuYw0KLS0tIHN5bmNoX21hY2hkZXAu
YwkyMDAwLzEwLzA0IDAxOjIwOjQ5CTEuNQ0KKysrIHN5bmNoX21hY2hkZXAu
YwkyMDAwLzEwLzA1IDEwOjIzOjMzDQpAQCAtMzU1LDEwICszNTUsMTYgQEAN
CiAJCXAgPSBDVVJQUk9DOw0KIAkJcDEgPSBUQUlMUV9GSVJTVCgmbS0+bXR4
X2Jsb2NrZWQpOw0KIAkJTVBBU1MocC0+cF9tYWdpYyA9PSBQX01BR0lDKTsN
Ci0JCU1QQVNTKHAxLT5wX21hZ2ljID09IFBfTUFHSUMpOw0KLQkJVEFJTFFf
UkVNT1ZFKCZtLT5tdHhfYmxvY2tlZCwgcDEsIHBfcHJvY3EpOw0KKwkJaWYg
KHAxKSB7DQorCQkJTVBBU1MocDEtPnBfbWFnaWMgPT0gUF9NQUdJQyk7DQor
CQkJVEFJTFFfUkVNT1ZFKCZtLT5tdHhfYmxvY2tlZCwgcDEsIHBfcHJvY3Ep
Ow0KKwkJfSBlbHNlDQorCQkJcHJpbnRmKCJlbXB0eSBtdHhfYmxvY2tlZCBm
b3IgbXV0ZXggJXNcbiIsIG0tPm10eF9kZXNjcmlwdGlvbik7DQogCQlpZiAo
VEFJTFFfRU1QVFkoJm0tPm10eF9ibG9ja2VkKSkgew0KLQkJCUxJU1RfUkVN
T1ZFKG0sIG10eF9jb250ZXN0ZWQpOw0KKwkJCWlmIChtLT5tdHhfY29udGVz
dGVkLmxlX3ByZXYgIT0gTlVMTCkNCisJCQkJTElTVF9SRU1PVkUobSwgbXR4
X2NvbnRlc3RlZCk7DQorCQkJZWxzZQ0KKwkJCQlwcmludGYoIm10eF9jb250
ZXN0ZWQgbm90IGluIGFueSBsaXN0IGZvciBtdXRleCAlc1xuIiwgbS0+bXR4
X2Rlc2NyaXB0aW9uKTsNCiAJCQlhdG9taWNfY21wc2V0X2ludCgmbS0+bXR4
X2xvY2ssIG0tPm10eF9sb2NrLA0KIAkJCQkJICBNVFhfVU5PV05FRCk7DQog
CQkJQ1RSMShLVFJfTE9DSywgIm10eF9leGl0OiAweCVwIG5vdCBoZWxkIiwg
bSk7DQpAQCAtMzczLDEyICszNzksMTUgQEANCiAJCWlmIChwcmkgPiBwLT5w
X25hdGl2ZXByaSkNCiAJCQlwcmkgPSBwLT5wX25hdGl2ZXByaTsNCiAJCVNF
VF9QUklPKHAsIHByaSk7DQotCQlDVFIyKEtUUl9MT0NLLCAibXR4X2V4aXQ6
IDB4JXAgY29udGVzdGVkIHNldHJ1bnF1ZXVlIDB4JXAiLA0KLQkJICAgIG0s
IHAxKTsNCi0JCXAxLT5wX2Jsb2NrZWQgPSBOVUxMOw0KLQkJcDEtPnBfc3Rh
dCA9IFNSVU47DQotCQlzZXRydW5xdWV1ZShwMSk7DQotCQlpZiAoKHR5cGUg
JiBNVFhfTk9TV0lUQ0gpID09IDAgJiYgcDEtPnBfcHJpb3JpdHkgPCBwcmkp
IHsNCisJCWlmIChwMSkgew0KKwkJCUNUUjIoS1RSX0xPQ0ssICJtdHhfZXhp
dDogMHglcCBjb250ZXN0ZWQgc2V0cnVucXVldWUgMHglcCIsDQorCQkJICAg
IG0sIHAxKTsNCisJCQlwMS0+cF9ibG9ja2VkID0gTlVMTDsNCisJCQlwMS0+
cF9zdGF0ID0gU1JVTjsNCisJCQlzZXRydW5xdWV1ZShwMSk7DQorCQl9DQor
CQlpZiAoKHR5cGUgJiBNVFhfTk9TV0lUQ0gpID09IDAgJiYNCisJCSAgICAo
cDEgPT0gTlVMTCB8fCBwMS0+cF9wcmlvcml0eSA8IHByaSkpIHsNCiAjaWZk
ZWYgbm90eWV0DQogCQkJaWYgKHAtPnBfZmxhZyAmIChQX0lUSEQgfCBQX1NJ
VEhEKSkgew0KIAkJCQlpdGhkX3QgKml0ID0gKGl0aGRfdCAqKXA7DQo=
--0-1753296439-970742441=:43806--


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-smp" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.10.10010051724260.43806-200000>