{"id":7588,"date":"2023-10-17T12:17:44","date_gmt":"2023-10-17T10:17:44","guid":{"rendered":"http:\/\/www.kameli.net\/marq\/?p=7588"},"modified":"2023-12-06T11:17:06","modified_gmt":"2023-12-06T09:17:06","slug":"memtestin-ja-kernelin-yhteispeli","status":"publish","type":"post","link":"http:\/\/www.kameli.net\/marq\/?p=7588","title":{"rendered":"MemTestin ja kernelin yhteispeli"},"content":{"rendered":"\n<p>Er\u00e4\u00e4ss\u00e4 projektip\u00f6nt\u00f6ss\u00e4 ilmeni 2&#215;8 gigan DDR3-kalikoilla <a href=\"https:\/\/www.memtest86.com\/\">MemTest86:lla<\/a> satunnaista <em>yhden<\/em> (1) bitin virhett\u00e4 tietyss\u00e4 kiinte\u00e4ss\u00e4 osoitteessa. Yht\u00e4\u00e4lt\u00e4 en oikein viitsisi tuollaisen takia ostaa uusia, mutta toisaalta ei tilannetta voi j\u00e4tt\u00e4\u00e4 sikseenk\u00e4\u00e4n, koska sen yhden bitin muuttuminen voi olla liikaa sopivassa tilanteessa. <em>MemTest<\/em> kertoo auliisti, ett\u00e4 osoite on 4191A9978, mutta mit\u00e4s t\u00e4ll\u00e4 tiedolla sitten tehd\u00e4\u00e4n?<\/p>\n\n\n\n<p>Linuxin kernelille on mahdollista kertoa k\u00e4ynnistyksess\u00e4, ett\u00e4 tiettyj\u00e4 alueita ei k\u00e4ytet\u00e4. T\u00e4m\u00e4n pystyy tekem\u00e4\u00e4n joko GRUB_BADRAM-asetuksella tai sitten suoraan kernelin parametrilla <em>memmap<\/em>. Netist\u00e4 l\u00f6ytyy vanhoja ohjeita 32-bittisille ytimille, mutta t\u00e4n\u00e4 p\u00e4iv\u00e4n\u00e4 64 bitti\u00e4 on arkip\u00e4iv\u00e4\u00e4, joten vinkit eiv\u00e4t v\u00e4ltt\u00e4m\u00e4tt\u00e4 p\u00e4de sin\u00e4lt\u00e4\u00e4n. Tekee s\u00e4\u00e4d\u00f6n kumpaa kautta hyv\u00e4ns\u00e4, t\u00e4ytyy kertoa mik\u00e4 alue ohitetaan, joko maskilla tai sitten tavum\u00e4\u00e4r\u00e4. Koska peeseell\u00e4 muistisivu on 4096 tavua, seuraava s\u00e4\u00e4t\u00f6 <em>\/etc\/default\/grub<\/em>-tiedostoon tuottaa halutun tuloksen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>GRUB_CMDLINE_LINUX_DEFAULT=\"quiet splash memmap=4K\\\\\\$0x00000004191a9000\"<\/code><\/pre>\n\n\n\n<p>Alkuun lis\u00e4t\u00e4\u00e4n heksaluvun tunnus 0x ja seitsem\u00e4n nollaa, jotta saadaan oikea 64-bittinen (16 numeroa) osoite, mink\u00e4 lis\u00e4ksi kolme alinta numeroa nollataan, jotta saadaan sivun osoite. Viel\u00e4 pit\u00e4\u00e4 ajaa <em>sudo update-grub<\/em> sek\u00e4 buutata kone, mink\u00e4 j\u00e4lkeen alue 4191A9000\u20134191A9FFF ei ole en\u00e4\u00e4 k\u00e4yt\u00f6ss\u00e4, ja ongelmainen muistiosoite suljetaan tylysti pois karkeloista. Nelj\u00e4n kilotavun haaskaaminen ei nykykoneilla merkitse mit\u00e4\u00e4n, etenkin kun toisessa vaakakupissa on vakaasti toimiva kone. <em>Dmesg<\/em>-komennon tulostus varmistaa s\u00e4\u00e4d\u00f6n menneen perille:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;    0.000000] user: &#91;mem 0x00000004191a9000-0x00000004191a9fff] reserved<\/code><\/pre>\n\n\n\n<p>T\u00e4llaiselle kikkailulle voi tulla tarvetta etenkin, jos kyseess\u00e4 on emolle kiinte\u00e4sti juotettu tai erityisen harvinainen\/kallis muisti. Jos muistivirheet tulevat satunnaisista osoitteista tai niit\u00e4 on tolkuttoman paljon, niin peli on toki menetetty.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\">MemTest errors and Linux command line<\/h3>\n\n\n\n<p>And a short summary in English. If there&#8217;s an isolate memory issue revealed by <em>MemTest86<\/em>, it might still be possible to use the memory modules with the help of Linux kernel&#8217;s <em>memmap<\/em> setting \u2013 also GRUB_BADRAM does the same, but uses a slightly different format. This might be particularly useful with integrated or rare\/expensive RAM. In this example the unstable bit was found at address 4191A9978. Do not follow old instructions meant for 32-bit kernels, but put this in <em>\/etc\/default\/grub<\/em> instead:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>GRUB_CMDLINE_LINUX_DEFAULT=\"quiet splash memmap=4K\\\\\\$0x00000004191a9000\"<\/code><\/pre>\n\n\n\n<p>0x (i.e. hex) at the beginning, then seven zeroes to make it 64-bit (16 numbers) and finally the address with the lowest three numbers zeroed. This is because the page size is 4096 bytes on today&#8217;s PCs. Then run <em>sudo update-grub<\/em> and reboot, after which the offending address will not be used by the kernel. To make sure that is the case, check that <em>dmesg<\/em> agrees:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;    0.000000] user: &#91;mem 0x00000004191a9000-0x00000004191a9fff] reserved<\/code><\/pre>\n\n\n\n<p>Losing 4 kilobytes of memory isn&#8217;t really any concern today, especially if you get a stable system back that way. If there&#8217;s a lot of errors or they appear at random locations, then there&#8217;s of course little you can do.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Er\u00e4\u00e4ss\u00e4 projektip\u00f6nt\u00f6ss\u00e4 ilmeni 2&#215;8 gigan DDR3-kalikoilla MemTest86:lla satunnaista yhden (1) bitin virhett\u00e4 tietyss\u00e4 kiinte\u00e4ss\u00e4 osoitteessa. Yht\u00e4\u00e4lt\u00e4 en oikein viitsisi tuollaisen takia ostaa uusia, mutta toisaalta ei tilannetta voi j\u00e4tt\u00e4\u00e4 sikseenk\u00e4\u00e4n, koska sen yhden bitin muuttuminen voi olla liikaa sopivassa tilanteessa. MemTest kertoo auliisti, ett\u00e4 osoite on 4191A9978, mutta mit\u00e4s t\u00e4ll\u00e4 tiedolla sitten tehd\u00e4\u00e4n? Linuxin kernelille [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[13,24],"tags":[],"class_list":["post-7588","post","type-post","status-publish","format-standard","hentry","category-linux","category-softat"],"_links":{"self":[{"href":"http:\/\/www.kameli.net\/marq\/index.php?rest_route=\/wp\/v2\/posts\/7588","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.kameli.net\/marq\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.kameli.net\/marq\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.kameli.net\/marq\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.kameli.net\/marq\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=7588"}],"version-history":[{"count":4,"href":"http:\/\/www.kameli.net\/marq\/index.php?rest_route=\/wp\/v2\/posts\/7588\/revisions"}],"predecessor-version":[{"id":7666,"href":"http:\/\/www.kameli.net\/marq\/index.php?rest_route=\/wp\/v2\/posts\/7588\/revisions\/7666"}],"wp:attachment":[{"href":"http:\/\/www.kameli.net\/marq\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=7588"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.kameli.net\/marq\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=7588"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.kameli.net\/marq\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=7588"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}