From owner-freebsd-current Thu Oct 5 3:41: 3 2000 Delivered-To: freebsd-current@freebsd.org Received: from relay.butya.kz (butya-gw.butya.kz [212.154.129.94]) by hub.freebsd.org (Postfix) with ESMTP id 9830937B502; Thu, 5 Oct 2000 03:40:47 -0700 (PDT) Received: by relay.butya.kz (Postfix, from userid 1000) id 8C61728A0F; Thu, 5 Oct 2000 17:40:41 +0700 (ALMST) Received: from localhost (localhost [127.0.0.1]) by relay.butya.kz (Postfix) with ESMTP id 7A962287DF; Thu, 5 Oct 2000 17:40:41 +0700 (ALMST) Date: Thu, 5 Oct 2000 17:40:41 +0700 (ALMST) From: Boris Popov To: freebsd-current@freebsd.org Cc: freebsd-smp@freebsd.org Subject: Problems with kthread_exit() and SMPng Message-ID: MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="0-1753296439-970742441=:43806" Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG 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: 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-current" in the body of the message