Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751730Ab1C0WWm (ORCPT ); Sun, 27 Mar 2011 18:22:42 -0400 Received: from mail-wy0-f174.google.com ([74.125.82.174]:60768 "EHLO mail-wy0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750968Ab1C0WWl (ORCPT ); Sun, 27 Mar 2011 18:22:41 -0400 DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; b=PTcco7B6YspCNiiuR6W0MXeYbdXahBZ8Ta5nTpVHnDs+8ZDf7vUVZQA6FmBOyjJPsG 1sBBahT8DMU+QTNNqB8WRBXRWusYuVM0RK+942JG7Ha8JepgiXcuWfNm5R8Ein5f0MXP ejZhjx1EAWRLOCt8pRCbg0bgnpsnYQO7ghvA0= MIME-Version: 1.0 Date: Mon, 28 Mar 2011 09:22:39 +1100 Message-ID: Subject: script illustrating bogoMIPs bugs From: Andrew Worsley To: linux-kernel@vger.kernel.org Content-Type: multipart/mixed; boundary=000e0ce0028ad8869f049f7e43e2 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 26457 Lines: 381 --000e0ce0028ad8869f049f7e43e2 Content-Type: text/plain; charset=ISO-8859-1 The attach script, easyHammer.sh, (and patch against 2.6.38 to enable the diagnostic printks) illustrate the failures. Just apply the patch, add an ssh key to allow root access and run the script against the box. It will reboot the box and capture the relevant lines from dmesg on boot up into a log file. Nothing else was required to reproduce this bug. It appears happen about 1 in 10 warm reboots on our Core Duo machines. I attach output from 80 reboots illustrating about 4 bad values from SM Interrupts (grep for dropping) and 5 from TSC wrap around issue (grep wrap) over that period. e.g. amw(0)% grep dropping bogoMIPS.trace calibrate_delay_direct() dropping max bogoMips estimate 3 = 2492460926 calibrate_delay_direct() dropping max bogoMips estimate 4 = 2486858073 calibrate_delay_direct() dropping min bogoMips estimate 3 = 24650001 calibrate_delay_direct() dropping min bogoMips estimate 1 = 11249510 amw(0)% grep wrap bogoMIPS.trace calibrate_delay_direct() ignoring timer_rate as we had a TSC wrap around start=4284982900 >=post_end=21682363 calibrate_delay_direct() ignoring timer_rate as we had a TSC wrap around start=4268414539 >=post_end=5114068 calibrate_delay_direct() ignoring timer_rate as we had a TSC wrap around start=4278710611 >=post_end=15409950 calibrate_delay_direct() ignoring timer_rate as we had a TSC wrap around start=4283228383 >=post_end=19927703 calibrate_delay_direct() ignoring timer_rate as we had a TSC wrap around start=4272107645 >=post_end=8807592 I think TSC wrap around will be present on any modern CPU where the TSC is not resent over a warm reboot and the SMI issue will be dependant on the BIOS on the mother board. The patch includes the fix so the box will be fine as it detects and ignores the erroneous values. The details of bogoMIPs calculation code occasionally screwing up are in this previous e-mail http://marc.info/?l=linux-kernel&m=129973704419833&w=4 This code was run on kernel 2.6.30 as that is the code running which found the problem. But as this code has not changed significantly in 2.6.38 (just some diagnostic prints are suppressed hiding the problem more) it should be present in all kernels. Andrew --000e0ce0028ad8869f049f7e43e2 Content-Type: application/x-sh; name="easyHammer.sh" Content-Disposition: attachment; filename="easyHammer.sh" Content-Transfer-Encoding: base64 X-Attachment-Id: f_glsj0xh60 IyEgL2Jpbi9zaApJUD0kezE6LSJCT1gifQpGSUxFPSR7MjotIiRJUC0kJC50eHQifQpTVElNRT0k ezM6LSI2MCJ9CmVjaG8gIlN0YXJ0aW5nIHJ1biBvbiAkSVAiID4gJEZJTEUKc3NoIHJvb3RAJElQ ICdkbWVzZyB8IGdyZXAgLWkgQm9nb01pcCcgPj4gJEZJTEUgfHwgKGVjaG8gIkZhaWxlZCB0byBs b2dpbiB0byBib3giOyBleGl0IDEpCk49MQp3aGlsZSB0cnVlOyAKICAgZG8KCUQ9YGRhdGVgCglp ZiBVPWBzc2ggcm9vdEAkSVAgdXB0aW1lYCA7IHRoZW4KCSAgICBlY2hvICIgIiA+PiAkRklMRQoJ ICAgIGVjaG8gIiAqKioqIEl0ZXJhdGlvbiAkTiAqKioqICREICoqKiIgPj4gJEZJTEUKCSAgICBl Y2hvICIgKioqKiAkVSAqKioiID4+ICRGSUxFCgkgICAgc3NoIHJvb3RAJElQICdkbWVzZyB8IGdy ZXAgLWkgLUUgIkJvZ29NaXB8Y2FsaWJyYXRlX2RlbGF5X2RpcmVjdCInID4+ICRGSUxFIHx8IChl Y2hvICJGYWlsZWQgdG8gbG9naW4gdG8gYm94IjsgZXhpdCAxKQoJICAgIGVjaG8gIiAiID4+ICRG SUxFCgllbHNlCgkgICAgZWNobyAiJElQOiBub3QgcmVzcG9uZGluZyBhdCAkRCAtIHRyeSBhZ2Fp biBpbiAkU1RJTUUuLi4iID4+ICRGSUxFCgkgICAgc2xlZXAgJFNUSU1FCgkgICAgY29udGludWUK CWZpCgllY2hvICJSZWJvb3QgYW5kIHdhaXQgJFNUSU1FIiA+PiAkRklMRQoJc3NoIHJvb3RAJElQ ICdyZWJvb3QnCglzbGVlcCAkU1RJTUUKCU49JCgoJE4rMSkpCmRvbmUK --000e0ce0028ad8869f049f7e43e2 Content-Type: application/octet-stream; name="patch-bogoMIPS.v2.6.38" Content-Disposition: attachment; filename="patch-bogoMIPS.v2.6.38" Content-Transfer-Encoding: base64 X-Attachment-Id: f_glsj1hys2 ZGlmZiAtLWdpdCBhL2luaXQvY2FsaWJyYXRlLmMgYi9pbml0L2NhbGlicmF0ZS5jCmluZGV4IDI0 ZmUwMjIuLjhlN2NlODAgMTAwNjQ0Ci0tLSBhL2luaXQvY2FsaWJyYXRlLmMKKysrIGIvaW5pdC9j YWxpYnJhdGUuYwpAQCAtMzgsNiArMzgsOSBAQCBzdGF0aWMgdW5zaWduZWQgbG9uZyBfX2NwdWlu aXQgY2FsaWJyYXRlX2RlbGF5X2RpcmVjdCh2b2lkKQogCXVuc2lnbmVkIGxvbmcgdGltZXJfcmF0 ZV9taW4sIHRpbWVyX3JhdGVfbWF4OwogCXVuc2lnbmVkIGxvbmcgZ29vZF90aW1lcl9zdW0gPSAw OwogCXVuc2lnbmVkIGxvbmcgZ29vZF90aW1lcl9jb3VudCA9IDA7CisJdW5zaWduZWQgbG9uZyBt ZWFzdXJlZF90aW1lc1tNQVhfRElSRUNUX0NBTElCUkFUSU9OX1JFVFJJRVNdOworCWludCBtYXgg PSAtMTsgLyogaW5kZXggb2YgbWVhc3VyZWRfdGltZXMgd2l0aCBtYXgvbWluIHZhbHVlcyBvciBu b3Qgc2V0ICovCisJaW50IG1pbiA9IC0xOwogCWludCBpOwogCiAJaWYgKHJlYWRfY3VycmVudF90 aW1lcigmcHJlX3N0YXJ0KSA8IDAgKQpAQCAtOTAsMTUgKzkzLDcyIEBAIHN0YXRpYyB1bnNpZ25l ZCBsb25nIF9fY3B1aW5pdCBjYWxpYnJhdGVfZGVsYXlfZGlyZWN0KHZvaWQpCiAJCSAqIElmIHRo ZSB1cHBlciBsaW1pdCBhbmQgbG93ZXIgbGltaXQgb2YgdGhlIHRpbWVyX3JhdGUgaXMKIAkJICog Pj0gMTIuNSUgYXBhcnQsIHJlZG8gY2FsaWJyYXRpb24uCiAJCSAqLwotCQlpZiAocHJlX3N0YXJ0 ICE9IDAgJiYgcHJlX2VuZCAhPSAwICYmCisJcHJpbnRrKEtFUk5fV0FSTklORworImNhbGlicmF0 ZV9kZWxheV9kaXJlY3QoKSB0aW1lcl9yYXRlX21heD0lbHUgdGltZXJfcmF0ZV9taW49JWx1IHBy ZV9zdGFydD0lbHUgcHJlX2VuZD0lbHVcbiIsCisJCQkgIHRpbWVyX3JhdGVfbWF4LCB0aW1lcl9y YXRlX21pbiwgcHJlX3N0YXJ0LCBwcmVfZW5kKTsKKwkJaWYgKHN0YXJ0ID49IHBvc3RfZW5kKQor CQkJcHJpbnRrKEtFUk5fV0FSTklORworCQkJCSJjYWxpYnJhdGVfZGVsYXlfZGlyZWN0KCkgaWdu b3JpbmcgdGltZXJfcmF0ZSBhcyB3ZSBoYWQgYSBUU0Mgd3JhcCBhcm91bmQgc3RhcnQ9JWx1ID49 cG9zdF9lbmQ9JWx1XG4iLAorCQkJCXN0YXJ0LCBwb3N0X2VuZCk7CisJCWlmIChzdGFydCA8IHBv c3RfZW5kICYmIHByZV9zdGFydCAhPSAwICYmIHByZV9lbmQgIT0gMCAmJgogCQkgICAgKHRpbWVy X3JhdGVfbWF4IC0gdGltZXJfcmF0ZV9taW4pIDwgKHRpbWVyX3JhdGVfbWF4ID4+IDMpKSB7CiAJ CQlnb29kX3RpbWVyX2NvdW50Kys7CiAJCQlnb29kX3RpbWVyX3N1bSArPSB0aW1lcl9yYXRlX21h eDsKLQkJfQorCQkJbWVhc3VyZWRfdGltZXNbaV0gPSB0aW1lcl9yYXRlX21heDsKKwkJCWlmICht YXggPCAwIHx8IHRpbWVyX3JhdGVfbWF4ID4gbWVhc3VyZWRfdGltZXNbbWF4XSkKKwkJCQltYXgg PSBpOworCQkJaWYgKG1pbiA8IDAgfHwgdGltZXJfcmF0ZV9tYXggPCBtZWFzdXJlZF90aW1lc1tt aW5dKQorCQkJCW1pbiA9IGk7CisJCX0gZWxzZQorCQkJbWVhc3VyZWRfdGltZXNbaV0gPSAwOwor CiAJfQogCi0JaWYgKGdvb2RfdGltZXJfY291bnQpCi0JCXJldHVybiAoZ29vZF90aW1lcl9zdW0v Z29vZF90aW1lcl9jb3VudCk7CisJLyoKKwkgKiBGaW5kIHRoZSBtYXhpbXVtICYgbWluaW11bSAt IGlmIHRoZXkgZGlmZmVyIHRvbyBtdWNoIHRocm91Z2ggb3V0IHRoZSBvbmUgd2l0aCAKKwkgKiB0 aGUgbGFyZ2VzdCBkaWZmZXJlbmNlIGZyb20gdGhlIG1lYW4gYW5kIHRyeSBhZ2Fpbi4uLgorCSAq LworCXdoaWxlIChnb29kX3RpbWVyX2NvdW50ID4gMSkgeworCQl1bnNpZ25lZCBsb25nIGVzdGlt YXRlOworCQl1bnNpZ25lZCBsb25nIG1heGRpZmY7CisKKwkJLyogY29tcHV0ZSB0aGUgZXN0aW1h dGUgKi8KKwkJZXN0aW1hdGUgPSAoZ29vZF90aW1lcl9zdW0vZ29vZF90aW1lcl9jb3VudCk7CisJ CW1heGRpZmYgPSBlc3RpbWF0ZSA+PiAzOworCisJCS8qIGlmIHJhbmdlIGlzIHdpdGhpbiAxMiUg bGV0J3MgdGFrZSBpdCAqLworCQlpZiAoKG1lYXN1cmVkX3RpbWVzW21heF0gLSBtZWFzdXJlZF90 aW1lc1ttaW5dKSA8IG1heGRpZmYpCisJCQlyZXR1cm4gKGVzdGltYXRlKTsKKworCQkvKiBvayAt IGRyb3AgdGhlIHdvcnNlIHZhbHVlIGFuZCB0cnkgYWdhaW4uLi4gKi8KKwkJZ29vZF90aW1lcl9z dW0gPSAwOworCQlnb29kX3RpbWVyX2NvdW50ID0gMDsKKwkJaWYgKChtZWFzdXJlZF90aW1lc1tt YXhdIC0gZXN0aW1hdGUpIDwgKGVzdGltYXRlIC0gbWVhc3VyZWRfdGltZXNbbWluXSkpIHsKKwkJ CXByaW50ayhLRVJOX1dBUk5JTkcKKwkiY2FsaWJyYXRlX2RlbGF5X2RpcmVjdCgpIGRyb3BwaW5n IG1pbiBib2dvTWlwcyBlc3RpbWF0ZSAlZCA9ICVsdVxuIiwKKwkJCQltaW4sIG1lYXN1cmVkX3Rp bWVzW21pbl0pOworCQkJbWVhc3VyZWRfdGltZXNbbWluXSA9IDA7CisJCQltaW4gPSBtYXg7CisJ CX0gZWxzZSB7CisJCQlwcmludGsoS0VSTl9XQVJOSU5HCisJImNhbGlicmF0ZV9kZWxheV9kaXJl Y3QoKSBkcm9wcGluZyBtYXggYm9nb01pcHMgZXN0aW1hdGUgJWQgPSAlbHVcbiIsCisJCQkJbWF4 LCBtZWFzdXJlZF90aW1lc1ttYXhdKTsKKwkJCW1lYXN1cmVkX3RpbWVzW21heF0gPSAwOworCQkJ bWF4ID0gbWluOworCQl9CisKKwkJZm9yIChpID0gMDsgaSA8IE1BWF9ESVJFQ1RfQ0FMSUJSQVRJ T05fUkVUUklFUzsgaSsrKSB7CisJCQlpZiAobWVhc3VyZWRfdGltZXNbaV0gPT0gMCkKKwkJCQlj b250aW51ZTsKKwkJCWdvb2RfdGltZXJfY291bnQrKzsKKwkJCWdvb2RfdGltZXJfc3VtICs9IG1l YXN1cmVkX3RpbWVzW2ldOworCQkJaWYgKG1lYXN1cmVkX3RpbWVzW2ldIDwgbWVhc3VyZWRfdGlt ZXNbbWluXSkKKwkJCQltaW4gPSBpOworCQkJaWYgKG1lYXN1cmVkX3RpbWVzW2ldID4gbWVhc3Vy ZWRfdGltZXNbbWF4XSkKKwkJCQltYXggPSBpOworCQl9CisKKwl9CiAKIAlwcmludGsoS0VSTl9X QVJOSU5HICJjYWxpYnJhdGVfZGVsYXlfZGlyZWN0KCkgZmFpbGVkIHRvIGdldCBhIGdvb2QgIgog CSAgICAgICAiZXN0aW1hdGUgZm9yIGxvb3BzX3Blcl9qaWZmeS5cblByb2JhYmx5IGR1ZSB0byBs b25nIHBsYXRmb3JtIGludGVycnVwdHMuIENvbnNpZGVyIHVzaW5nIFwibHBqPVwiIGJvb3Qgb3B0 aW9uLlxuIik7CkBAIC0xMjMsMjYgKzE4MywyMyBAQCB2b2lkIF9fY3B1aW5pdCBjYWxpYnJhdGVf ZGVsYXkodm9pZCkKIHsKIAl1bnNpZ25lZCBsb25nIHRpY2tzLCBsb29wYml0OwogCWludCBscHNf cHJlY2lzaW9uID0gTFBTX1BSRUM7Ci0Jc3RhdGljIGJvb2wgcHJpbnRlZDsKIAogCWlmIChwcmVz ZXRfbHBqKSB7CiAJCWxvb3BzX3Blcl9qaWZmeSA9IHByZXNldF9scGo7Ci0JCWlmICghcHJpbnRl ZCkKLQkJCXByX2luZm8oIkNhbGlicmF0aW5nIGRlbGF5IGxvb3AgKHNraXBwZWQpICIKLQkJCQki cHJlc2V0IHZhbHVlLi4gIik7Ci0JfSBlbHNlIGlmICgoIXByaW50ZWQpICYmIGxwal9maW5lKSB7 CisJCXByaW50ayhLRVJOX0lORk8KKwkJCSJDYWxpYnJhdGluZyBkZWxheSBsb29wIChza2lwcGVk KSBwcmVzZXQgdmFsdWUuLiAiKTsKKwl9IGVsc2UgaWYgKChzbXBfcHJvY2Vzc29yX2lkKCkgPT0g MCkgJiYgbHBqX2ZpbmUpIHsKIAkJbG9vcHNfcGVyX2ppZmZ5ID0gbHBqX2ZpbmU7Ci0JCXByX2lu Zm8oIkNhbGlicmF0aW5nIGRlbGF5IGxvb3AgKHNraXBwZWQpLCAiCisJCXByaW50ayhLRVJOX0lO Rk8KKwkJCSJDYWxpYnJhdGluZyBkZWxheSBsb29wIChza2lwcGVkKSwgIgogCQkJInZhbHVlIGNh bGN1bGF0ZWQgdXNpbmcgdGltZXIgZnJlcXVlbmN5Li4gIik7CiAJfSBlbHNlIGlmICgobG9vcHNf cGVyX2ppZmZ5ID0gY2FsaWJyYXRlX2RlbGF5X2RpcmVjdCgpKSAhPSAwKSB7Ci0JCWlmICghcHJp bnRlZCkKLQkJCXByX2luZm8oIkNhbGlicmF0aW5nIGRlbGF5IHVzaW5nIHRpbWVyICIKLQkJCQki c3BlY2lmaWMgcm91dGluZS4uICIpOworCQlwcmludGsoS0VSTl9JTkZPCisJCQkiQ2FsaWJyYXRp bmcgZGVsYXkgdXNpbmcgdGltZXIgc3BlY2lmaWMgcm91dGluZS4uICIpOwogCX0gZWxzZSB7CiAJ CWxvb3BzX3Blcl9qaWZmeSA9ICgxPDwxMik7CiAKLQkJaWYgKCFwcmludGVkKQotCQkJcHJfaW5m bygiQ2FsaWJyYXRpbmcgZGVsYXkgbG9vcC4uLiAiKTsKKwkJcHJpbnRrKEtFUk5fSU5GTyAiQ2Fs aWJyYXRpbmcgZGVsYXkgbG9vcC4uLiAiKTsKIAkJd2hpbGUgKChsb29wc19wZXJfamlmZnkgPDw9 IDEpICE9IDApIHsKIAkJCS8qIHdhaXQgZm9yICJzdGFydCBvZiIgY2xvY2sgdGljayAqLwogCQkJ dGlja3MgPSBqaWZmaWVzOwpAQCAtMTczLDEwICsyMzAsNyBAQCB2b2lkIF9fY3B1aW5pdCBjYWxp YnJhdGVfZGVsYXkodm9pZCkKIAkJCQlsb29wc19wZXJfamlmZnkgJj0gfmxvb3BiaXQ7CiAJCX0K IAl9Ci0JaWYgKCFwcmludGVkKQotCQlwcl9jb250KCIlbHUuJTAybHUgQm9nb01JUFMgKGxwaj0l bHUpXG4iLAorCXByaW50ayhLRVJOX0NPTlQgIiVsdS4lMDJsdSBCb2dvTUlQUyAobHBqPSVsdSlc biIsCiAJCQlsb29wc19wZXJfamlmZnkvKDUwMDAwMC9IWiksCiAJCQkobG9vcHNfcGVyX2ppZmZ5 Lyg1MDAwL0haKSkgJSAxMDAsIGxvb3BzX3Blcl9qaWZmeSk7Ci0KLQlwcmludGVkID0gdHJ1ZTsK IH0K --000e0ce0028ad8869f049f7e43e2 Content-Type: application/x-gzip; name="bogoMIPS.trace.gz" Content-Disposition: attachment; filename="bogoMIPS.trace.gz" Content-Transfer-Encoding: base64 X-Attachment-Id: f_glsjbqf82 H4sICEGzj00AA2JvZ29NSVBTLnRyYWNlANxdXW9cR3J996+YRzswiK7q6q8BlIddJMA+LBLEftg3 g5Zoh7uyyJCUnf33OXWH0lQPu6VbVzPOJsaa8PKKLNWdPvV5qvq7p+uHp9t3P+8e3r/b3b3b/eHf /vLVH6/f3v74cL18+83N2+u/797e3d3vvn782+39/c2bb3b3DzePN0+7X6/fvr+5utrlGONVCLs/ 3P189+c//ft3u6/f3v/1VaScUwjhm7P/vu/vnq7f7u5+2jF+8u71zePj3cPj7vr10+2v1083b3Zf E+ec7W/45uqr3Ve7f8I/uz893ehfBarS4Rv/+nC7+/P1w47TLtR9aPtIu3/57vsdB1r+xPPPLQ/L Psru/f0u7n65ffctvrd7/3jz8Ij/ent3/WZ3/St+9883+124ovCtfi36NdTl9/w/fa3/cfPj3d3T 7vrdm91v17dPuxwG75pH7zqGPeXZu+a6p6bvGl8/97LD8rI/fF31sr89vJbd6+u3r9+/XfR7/6h/ +On2l5uH3U8PN//1/ubd678f3htfSRq8N+aE9/b6WdTND4ugH97cPty8fvr6m8Ov+mF58sv1fy8/ kVOu3fdv3x2+H0nf+s0Pj4rHV1xLyZFbkuWbN+/evOIWGrcWW/MJzDENBXKLVmArDIEx5o8CYwjC rZbMlxAYQ4aGlCsZgQ0aVqrRKRCHaPhKc7MCKUNDomAEUoOGJTXxCZQsQ4HE9jOMnKBhyDUeBXKF hrnFOjif9vg93t+8vv3p9vXu4e49/shH9MI0vTyFOdW4Er3pquQN6I1D9NKe6gy9gHZaLCV9FrzS FLYcHZbSB954VUZGr6boBW+WydF+hs0HLJFIwmkjA17R01FCdgrMcSwwpQ5LoUlKWcRgSQgCKVSn eapljUAK0DCF528esBShISXymadS29AeFqjTCWzQUESKwVJcNIzOVzrTMEbqwNugYaypHgVGfKIc YKi3greMwAsDuxK8ReHhB68MwRsVnzPw8l6igjd8Brx0RVlhG2kJdi7heeNVziPwRvaCt8Qw/OCl iPnghWprNQY6YklwyrK0zOQTWMPYL0mxjlC4SqsMa3S0FnCL+PcTbvD253d3Dx/f2fL7d9ePu99u dv+pn8/u++/+uPvt4fp+d40ziNPRiWoIkf751f3d49NRWvyUtPHbbGPlOi9fUyDA9qga6WfHIXmt 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 fW2j/wNNLX26JjsBAA== --000e0ce0028ad8869f049f7e43e2-- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/