Date: Tue, 17 Sep 2002 15:48:47 +0200 (CEST) From: Harti Brandt <brandt@fokus.gmd.de> To: Bruce Evans <bde@zeta.org.au> Cc: Don Lewis <dl-freebsd@catspoiler.org>, <brandt@fokus.gmd.de>, <phk@critter.freebsd.dk>, <archie@dellroad.org>, <joe@FreeBSD.org>, <obrien@FreeBSD.org>, <cvs-committers@FreeBSD.org>, <cvs-all@FreeBSD.org> Subject: Re: cvs commit: src/sys/kern kern_timeout.c Message-ID: <20020917153943.X812-200000@beagle.fokus.gmd.de> In-Reply-To: <20020917233828.H11067-100000@gamplex.bde.org>
next in thread | previous 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-288387960-1032270527=:812 Content-Type: TEXT/PLAIN; charset=US-ASCII On Tue, 17 Sep 2002, Bruce Evans wrote: BE>On Tue, 17 Sep 2002, Don Lewis wrote: BE> BE>> On 17 Sep, Harti Brandt wrote: BE>> .... BE>> > (1) replaced all calls to DELAY(1) with a bus_space_read_4() on a card BE>> > address. Because there are 184 DELAY(1) calls in each xl_mii_readreg each BE>> > of which takes a mean of 8.5usecs this cuts down the overall time from BE>> > 1.8msec to around 320usecs. BE>> BE>> I think we're probably ok here. The standard says the minimum high and BE>> low times for the clock signal are 160ns, with a minimum clock period of BE>> 400ns. If I do the math correctly, your scheme wiggles something about BE>> every 1.7us. BE> BE>Maybe the total time can be reduced a lot more by using the minimum delays BE>specified by the standard (using nanodelay(9unimplemented)). You would BE>find out if there is hardware that doesn't comply with the standard :-). I have reduced the time to around 240usec per readreg and 950usec per xl_status_update by removing the delays altogether. This is possible, because the macros used to toggle the bits first do a read to the address and then only a write. The delay introduced by this read is enough it seems. The time could be reduced further (if we had nanodelay()) by not reading the registers, but by using nanodelay() and writes. This is possible because we always know what we have in the register so there is no point in reading it. I can reduce the time to 100usec per readreg by not writing the 32bit sync preamble. The PHY normally should signal this ability in a bit in the BMSR. Mine doesn't, but works without preamble (a comment in the linux driver suggests that all except some very old cards work without preamble). See attached diffs. harti -- harti brandt, http://www.fokus.gmd.de/research/cc/cats/employees/hartmut.brandt/private brandt@fokus.gmd.de, brandt@fokus.fhg.de --0-288387960-1032270527=:812 Content-Type: TEXT/PLAIN; charset=US-ASCII; name="if_xl.diff" Content-Transfer-Encoding: BASE64 Content-ID: <20020917154847.J812@beagle.fokus.gmd.de> Content-Description: Content-Disposition: attachment; filename="if_xl.diff" SW5kZXg6IGlmX3hsLmMNCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NClJDUyBm aWxlOiAvdXNyL25jdnMvc3JjL3N5cy9wY2kvaWZfeGwuYyx2DQpyZXRyaWV2 aW5nIHJldmlzaW9uIDEuMTA1DQpkaWZmIC11IC1yMS4xMDUgaWZfeGwuYw0K LS0tIGlmX3hsLmMJMjQgQXVnIDIwMDIgMDA6MDI6MDMgLTAwMDAJMS4xMDUN CisrKyBpZl94bC5jCTE2IFNlcCAyMDAyIDE0OjAwOjU1IC0wMDAwDQpAQCAt MzU2LDYgKzM1NiwxNiBAQA0KIAlDU1JfV1JJVEVfMihzYywgWExfVzRfUEhZ X01HTVQsCQkJXA0KIAkJQ1NSX1JFQURfMihzYywgWExfVzRfUEhZX01HTVQp ICYgfngpDQogDQorI2RlZmluZSBNSUlfU0VUQ0xSKHgseSkJCQkJCVwNCisJ Q1NSX1dSSVRFXzIoc2MsIFhMX1c0X1BIWV9NR01ULAkJCVwNCisJCShDU1Jf UkVBRF8yKHNjLCBYTF9XNF9QSFlfTUdNVCkgJiB+eSkgfCB4KQ0KKw0KK3N0 YXRpYyBfX2lubGluZSB2b2lkDQoreGxfbWlpX2RlbGF5KHN0cnVjdCB4bF9z b2Z0YyAqc2MsIHVfaW50IGFkZHIpDQorew0KKwlDU1JfUkVBRF80KHNjLCBh ZGRyKTsNCit9DQorDQogLyoNCiAgKiBTeW5jIHRoZSBQSFlzIGJ5IHNldHRp bmcgZGF0YSBiaXQgYW5kIHN0cm9iaW5nIHRoZSBjbG9jayAzMiB0aW1lcy4N CiAgKi8NCkBAIC0zNzAsOSArMzgwLDkgQEANCiANCiAJZm9yIChpID0gMDsg aSA8IDMyOyBpKyspIHsNCiAJCU1JSV9TRVQoWExfTUlJX0NMSyk7DQotCQlE RUxBWSgxKTsNCisJCXhsX21paV9kZWxheShzYywgWExfVzRfUEhZX01HTVQp Ow0KIAkJTUlJX0NMUihYTF9NSUlfQ0xLKTsNCi0JCURFTEFZKDEpOw0KKwkJ eGxfbWlpX2RlbGF5KHNjLCBYTF9XNF9QSFlfTUdNVCk7DQogCX0NCiANCiAJ cmV0dXJuOw0KQEAgLTM5MCwxOCArNDAwLDE4IEBADQogCWludAkJCWk7DQog DQogCVhMX1NFTF9XSU4oNCk7DQotCU1JSV9DTFIoWExfTUlJX0NMSyk7DQor CS8qIFhYWCBNSUlfQ0xSKFhMX01JSV9DTEspOyAqLw0KIA0KKwkvKiBYWFgg Y291bGQgam9pbiB0aGUgTUlJX1NFVC9DTFIgb2YgZGF0YSB3aXRoIHRoZSBD TFIgb2YgdGhlIGNsb2NrICovDQogCWZvciAoaSA9ICgweDEgPDwgKGNudCAt IDEpKTsgaTsgaSA+Pj0gMSkgew0KICAgICAgICAgICAgICAgICBpZiAoYml0 cyAmIGkpIHsNCi0JCQlNSUlfU0VUKFhMX01JSV9EQVRBKTsNCisJCQlNSUlf U0VUQ0xSKFhMX01JSV9EQVRBLCBYTF9NSUlfQ0xLKTsNCiAgICAgICAgICAg ICAgICAgfSBlbHNlIHsNCi0JCQlNSUlfQ0xSKFhMX01JSV9EQVRBKTsNCisJ CQlNSUlfQ0xSKChYTF9NSUlfREFUQSB8IFhMX01JSV9DTEspKTsNCiAgICAg ICAgICAgICAgICAgfQ0KLQkJREVMQVkoMSk7DQotCQlNSUlfQ0xSKFhMX01J SV9DTEspOw0KLQkJREVMQVkoMSk7DQorCQl4bF9taWlfZGVsYXkoc2MsIFhM X1c0X1BIWV9NR01UKTsNCiAJCU1JSV9TRVQoWExfTUlJX0NMSyk7DQorCQl4 bF9taWlfZGVsYXkoc2MsIFhMX1c0X1BIWV9NR01UKTsNCiAJfQ0KIH0NCiAN CkBAIC00MzMsMTEgKzQ0Myw2IEBADQogCVhMX1NFTF9XSU4oNCk7DQogDQog CUNTUl9XUklURV8yKHNjLCBYTF9XNF9QSFlfTUdNVCwgMCk7DQotCS8qDQot IAkgKiBUdXJuIG9uIGRhdGEgeG1pdC4NCi0JICovDQotCU1JSV9TRVQoWExf TUlJX0RJUik7DQotDQogCXhsX21paV9zeW5jKHNjKTsNCiANCiAJLyoNCkBA IC00NDgsMjAgKzQ1MywyMCBAQA0KIAl4bF9taWlfc2VuZChzYywgZnJhbWUt Pm1paV9waHlhZGRyLCA1KTsNCiAJeGxfbWlpX3NlbmQoc2MsIGZyYW1lLT5t aWlfcmVnYWRkciwgNSk7DQogDQotCS8qIElkbGUgYml0ICovDQotCU1JSV9D TFIoKFhMX01JSV9DTEt8WExfTUlJX0RBVEEpKTsNCi0JREVMQVkoMSk7DQot CU1JSV9TRVQoWExfTUlJX0NMSyk7DQotCURFTEFZKDEpOw0KLQ0KIAkvKiBU dXJuIG9mZiB4bWl0LiAqLw0KIAlNSUlfQ0xSKFhMX01JSV9ESVIpOw0KIA0K KwkvKiB0dXJuYXJvdW5kICovDQorCU1JSV9DTFIoKFhMX01JSV9DTEt8WExf TUlJX0RBVEEpKTsNCisJeGxfbWlpX2RlbGF5KHNjLCBYTF9XNF9QSFlfTUdN VCk7DQorCU1JSV9TRVQoWExfTUlJX0NMSyk7DQorCXhsX21paV9kZWxheShz YywgWExfVzRfUEhZX01HTVQpOw0KKw0KIAkvKiBDaGVjayBmb3IgYWNrICov DQogCU1JSV9DTFIoWExfTUlJX0NMSyk7DQotCURFTEFZKDEpOw0KKwl4bF9t aWlfZGVsYXkoc2MsIFhMX1c0X1BIWV9NR01UKTsNCiAJTUlJX1NFVChYTF9N SUlfQ0xLKTsNCi0JREVMQVkoMSk7DQorCXhsX21paV9kZWxheShzYywgWExf VzRfUEhZX01HTVQpOw0KIAlhY2sgPSBDU1JfUkVBRF8yKHNjLCBYTF9XNF9Q SFlfTUdNVCkgJiBYTF9NSUlfREFUQTsNCiANCiAJLyoNCkBAIC00NzEsMzEg KzQ3NiwyOSBAQA0KIAlpZiAoYWNrKSB7DQogCQlmb3IoaSA9IDA7IGkgPCAx NjsgaSsrKSB7DQogCQkJTUlJX0NMUihYTF9NSUlfQ0xLKTsNCi0JCQlERUxB WSgxKTsNCisJCQl4bF9taWlfZGVsYXkoc2MsIFhMX1c0X1BIWV9NR01UKTsN CiAJCQlNSUlfU0VUKFhMX01JSV9DTEspOw0KLQkJCURFTEFZKDEpOw0KKwkJ CXhsX21paV9kZWxheShzYywgWExfVzRfUEhZX01HTVQpOw0KIAkJfQ0KIAkJ Z290byBmYWlsOw0KIAl9DQogDQogCWZvciAoaSA9IDB4ODAwMDsgaTsgaSA+ Pj0gMSkgew0KIAkJTUlJX0NMUihYTF9NSUlfQ0xLKTsNCi0JCURFTEFZKDEp Ow0KLQkJaWYgKCFhY2spIHsNCi0JCQlpZiAoQ1NSX1JFQURfMihzYywgWExf VzRfUEhZX01HTVQpICYgWExfTUlJX0RBVEEpDQotCQkJCWZyYW1lLT5taWlf ZGF0YSB8PSBpOw0KLQkJCURFTEFZKDEpOw0KLQkJfQ0KKwkJeGxfbWlpX2Rl bGF5KHNjLCBYTF9XNF9QSFlfTUdNVCk7DQorCQlpZiAoQ1NSX1JFQURfMihz YywgWExfVzRfUEhZX01HTVQpICYgWExfTUlJX0RBVEEpDQorCQkJZnJhbWUt Pm1paV9kYXRhIHw9IGk7DQogCQlNSUlfU0VUKFhMX01JSV9DTEspOw0KLQkJ REVMQVkoMSk7DQorCQl4bF9taWlfZGVsYXkoc2MsIFhMX1c0X1BIWV9NR01U KTsNCiAJfQ0KIA0KIGZhaWw6DQogDQorCS8qIElkbGUgYml0ICovDQogCU1J SV9DTFIoWExfTUlJX0NMSyk7DQotCURFTEFZKDEpOw0KKwl4bF9taWlfZGVs YXkoc2MsIFhMX1c0X1BIWV9NR01UKTsNCiAJTUlJX1NFVChYTF9NSUlfQ0xL KTsNCi0JREVMQVkoMSk7DQorCXhsX21paV9kZWxheShzYywgWExfVzRfUEhZ X01HTVQpOw0KIA0KIAlYTF9VTkxPQ0soc2MpOw0KIA0KQEAgLTU0NCw5ICs1 NDcsOSBAQA0KIA0KIAkvKiBJZGxlIGJpdC4gKi8NCiAJTUlJX1NFVChYTF9N SUlfQ0xLKTsNCi0JREVMQVkoMSk7DQorCXhsX21paV9kZWxheShzYywgWExf VzRfUEhZX01HTVQpOw0KIAlNSUlfQ0xSKFhMX01JSV9DTEspOw0KLQlERUxB WSgxKTsNCisJeGxfbWlpX2RlbGF5KHNjLCBYTF9XNF9QSFlfTUdNVCk7DQog DQogCS8qDQogCSAqIFR1cm4gb2ZmIHhtaXQuDQo= --0-288387960-1032270527=:812-- To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020917153943.X812-200000>