GNU bug report logs - #32890
[PATCH 0/2] test mems

Previous Next

Package: guix-patches;

Reported by: Tobias Geerinckx-Rice <me <at> tobias.gr>

Date: Mon, 1 Oct 2018 10:15:02 UTC

Severity: normal

Tags: patch

Done: Tobias Geerinckx-Rice <me <at> tobias.gr>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 32890 in the body.
You can then email your comments to 32890 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#32890; Package guix-patches. (Mon, 01 Oct 2018 10:15:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Tobias Geerinckx-Rice <me <at> tobias.gr>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Mon, 01 Oct 2018 10:15:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Tobias Geerinckx-Rice <me <at> tobias.gr>
To: guix-patches <at> gnu.org
Subject: [PATCH 0/2] test mems
Date: Mon, 01 Oct 2018 12:14:21 +0200
Guix,

Here are some memory testers.

Memtest86+ must be built with '--system=i686-linux' (is there a 
way to ask for a 32-bit glibc on x86_64?) and still needs to be 
tested by a volunteer with a BIOS machine. It can be launched from 
GRUB ('linux16 memtest') or catted to a boot disc (memtest.bin).

Memtester runs in user space and can even run as a regular 
user. It should just work.

Kind regards,

T G-R




Information forwarded to guix-patches <at> gnu.org:
bug#32890; Package guix-patches. (Mon, 01 Oct 2018 10:20:01 GMT) Full text and rfc822 format available.

Message #8 received at 32890 <at> debbugs.gnu.org (full text, mbox):

From: Tobias Geerinckx-Rice <me <at> tobias.gr>
To: 32890 <at> debbugs.gnu.org
Subject: [PATCH 1/2] gnu: Add memtest86+.
Date: Mon,  1 Oct 2018 12:19:24 +0200
* gnu/packages/hardware.scm (memtest86+): New public variable.
---
 gnu/packages/hardware.scm | 66 +++++++++++++++++++++++++++++++++++++--
 1 file changed, 64 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/hardware.scm b/gnu/packages/hardware.scm
index f77336e50..558ba4ef8 100644
--- a/gnu/packages/hardware.scm
+++ b/gnu/packages/hardware.scm
@@ -18,6 +18,7 @@
 
 (define-module (gnu packages hardware)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages gcc)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)
@@ -74,6 +75,67 @@ calibrated, and restored when the calibration is applied.")
     (license (list license:bsd-3        ; FindDDCUtil.cmake
                    license:gpl2+))))    ; everything else
 
+;; Distinct from memtest86, which is obsolete.
+(define-public memtest86+
+  (package
+    (name "memtest86+")
+    ;; Update the description when/if UEFI support is released.
+    (version "5.01")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://www.memtest.org/download/5.01/memtest86+-"
+                           version ".tar.gz"))
+       (sha256
+        (base32 "0fch1l55753y6jkk0hj8f6vw4h1kinkn9ysp22dq5g9zjnvjf88l"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (delete 'configure)            ; no configure script
+         (replace 'build
+           ;; The default 'make all' does wonderful things, like scp(1) a file to
+           ;; 192.168.0.12. Build the bootable images and nothing more.
+           (lambda _
+             (invoke "make"
+                     "memtest"          ; ELF executable
+                     "memtest.bin")))   ; DOS/MBR boot sector
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (lib (string-append out "/lib/memtest86+"))
+                    (doc (string-append out "/share/doc/memtest86+-" ,version)))
+               (for-each
+                (lambda (file)
+                  (install-file file lib))
+                (list "memtest"
+                      "memtest.bin"))
+               (for-each
+                (lambda (file)
+                  (install-file file doc))
+                (list "FAQ"
+                      "README"))))))
+       #:tests? #f))                    ; no way to test this
+    (native-inputs
+     ;; Newer GCCs fail with a deluge of "multiple definition of `__foo'" errors.
+     `(("gcc" ,gcc-4.9)))
+    ;; XXX How can I ask to simply 'build the same thing on x86_64 as on i686'?
+    (supported-systems (list "i686-linux"))
+    (home-page "https://www.memtest.org/")
+    (synopsis "Thorough real-mode memory tester")
+    (description
+     "Memtest86+ is a thorough, stand-alone memory test for x86-architecture
+systems.  It runs independently of any operating system, at computer boot-up, so
+that it can scan all of your RAM for hardware defects.
+
+Most errors reported by Memtest86+ can be solved by replacing (parts of) your
+RAM, but the test implicitly tests the CPU, caches, and motherboard as well.
+It is impossible for the test to determine which component caused the failure to
+occur: the only option is to replace more parts until the failure is corrected.
+
+Memtest86+ cannot currently be used on computers booted with UEFI.")
+    (license license:gpl2)))
+
 (define-public msr-tools
   (package
     (name "msr-tools")
@@ -89,6 +151,7 @@ calibrated, and restored when the calibration is applied.")
     (arguments
      `(#:make-flags
        (list (string-append "sbindir=" (assoc-ref %outputs "out") "/sbin"))
+       #:tests? #f                      ; no test suite
        #:phases
        (modify-phases %standard-phases
          (delete 'configure)            ; no configure script
@@ -98,8 +161,7 @@ calibrated, and restored when the calibration is applied.")
              (let* ((out  (assoc-ref outputs "out"))
                     (sbin (string-append out "/sbin")))
                (mkdir-p sbin)
-               #t))))
-       #:tests? #f))                    ; no test suite
+               #t))))))
     (native-inputs
      `(("unzip" ,unzip)))
     ;; These registers and the CPUID instruction only exist on (most) x86 chips.
-- 
2.18.0





Information forwarded to guix-patches <at> gnu.org:
bug#32890; Package guix-patches. (Mon, 01 Oct 2018 10:20:02 GMT) Full text and rfc822 format available.

Message #11 received at 32890 <at> debbugs.gnu.org (full text, mbox):

From: Tobias Geerinckx-Rice <me <at> tobias.gr>
To: 32890 <at> debbugs.gnu.org
Subject: [PATCH 2/2] gnu: Add memtester.
Date: Mon,  1 Oct 2018 12:19:25 +0200
* gnu/packages/hardware.scm (memtester): New public variable.
---
 gnu/packages/hardware.scm | 46 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)

diff --git a/gnu/packages/hardware.scm b/gnu/packages/hardware.scm
index 558ba4ef8..2c0ef4492 100644
--- a/gnu/packages/hardware.scm
+++ b/gnu/packages/hardware.scm
@@ -136,6 +136,52 @@ occur: the only option is to replace more parts until the failure is corrected.
 Memtest86+ cannot currently be used on computers booted with UEFI.")
     (license license:gpl2)))
 
+(define-public memtester
+  (package
+    (name "memtester")
+    (version "4.3.0")
+    (source
+     (origin
+       (method url-fetch)
+       ;; Even the latest release is available under 'old-versions/'.
+       (uri (string-append "http://pyropus.ca/software/memtester/old-versions/"
+                           "memtester-" version ".tar.gz"))
+       (sha256
+        (base32 "127xymmyzb9r6dxqrwd69v7gf8csv8kv7fjvagbglf3wfgyy5pzr"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:make-flags
+       (list "CC=gcc")
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           ;; This is a home-brewed configuration system where the cc/ld command
+           ;; lines are stored in one-line files.
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out")))
+               (substitute* (list "conf-cc" "conf-ld")
+                 (("^cc") "gcc"))
+               (substitute* "Makefile"
+                 (("(INSTALLPATH.*=).*" _ assignment)
+                  (string-append assignment out)))
+               #t)))
+         (replace 'check
+           ;; There is no test suite. Test some RAM for a single iteration.
+           (lambda _
+             (invoke "./memtester" "64K" "1"))))))
+    (home-page "http://pyropus.ca/software/memtester/")
+    (synopsis "User-space memory subsystem tester")
+    (description
+     "Memtester stress-tests the memory subsystem of your operating system and
+computer.  It can help debug even intermittent and non-deterministic errors.
+
+Memtester runs entirely in user space.  This means that you don't need to reboot
+to test your memory, but also that it's not possible to test all of the RAM
+installed in the system.
+
+It can also be told to test memory starting at a particular physical address.")
+    (license license:gpl2)))
+
 (define-public msr-tools
   (package
     (name "msr-tools")
-- 
2.18.0





Information forwarded to guix-patches <at> gnu.org:
bug#32890; Package guix-patches. (Mon, 01 Oct 2018 10:32:01 GMT) Full text and rfc822 format available.

Message #14 received at 32890 <at> debbugs.gnu.org (full text, mbox):

From: Tobias Geerinckx-Rice <me <at> tobias.gr>
To: 32890 <at> debbugs.gnu.org
Subject: Re: [bug#32890] [PATCH 1/2] gnu: Add memtest86+.
Date: Mon, 01 Oct 2018 12:31:43 +0200
Tobias Geerinckx-Rice wrote:
>  (define-public msr-tools
>    (package
>      (name "msr-tools")
> @@ -89,6 +151,7 @@ calibrated, and restored when the calibration 
> is applied.")
>      (arguments
>       `(#:make-flags
>         (list (string-append "sbindir=" (assoc-ref %outputs 
>         "out") "/sbin"))
> +       #:tests? #f                      ; no test suite
>         #:phases
>         (modify-phases %standard-phases
>           (delete 'configure)            ; no configure script
> @@ -98,8 +161,7 @@ calibrated, and restored when the calibration 
> is applied.")
>               (let* ((out  (assoc-ref outputs "out"))
>                      (sbin (string-append out "/sbin")))
>                 (mkdir-p sbin)
> -               #t))))
> -       #:tests? #f))                    ; no test suite
> +               #t))))))
>      (native-inputs
>       `(("unzip" ,unzip)))
>      ;; These registers and the CPUID instruction only exist on 
>      (most) x86 chips.

Have some cruft. Shouldn't affect the build, of course.

Kind regards,

T G-R




Information forwarded to guix-patches <at> gnu.org:
bug#32890; Package guix-patches. (Mon, 01 Oct 2018 15:50:02 GMT) Full text and rfc822 format available.

Message #17 received at 32890 <at> debbugs.gnu.org (full text, mbox):

From: Tor contact <torcontact1 <at> gmail.com>
To: 32890 <at> debbugs.gnu.org
Subject: [PATCH 1/2] gnu: Add memtest86+.
Date: Mon, 1 Oct 2018 17:40:45 +0200
I wrote:
> Memtest86+ must be built with '--system=i686-linux' (is there a
> way to ask for a 32-bit glibc on x86_64?)

There is, and it's called #:system.

Kind regards,

Someone with server hardware issues




Information forwarded to guix-patches <at> gnu.org:
bug#32890; Package guix-patches. (Tue, 02 Oct 2018 09:45:01 GMT) Full text and rfc822 format available.

Message #20 received at 32890 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Tobias Geerinckx-Rice <me <at> tobias.gr>
Cc: 32890 <at> debbugs.gnu.org
Subject: Re: [bug#32890] [PATCH 1/2] gnu: Add memtest86+.
Date: Tue, 02 Oct 2018 11:44:29 +0200
Hi,

Tobias Geerinckx-Rice <me <at> tobias.gr> skribis:

> * gnu/packages/hardware.scm (memtest86+): New public variable.

[...]

> +           (lambda* (#:key outputs #:allow-other-keys)
> +             (let* ((out (assoc-ref outputs "out"))
> +                    (lib (string-append out "/lib/memtest86+"))
> +                    (doc (string-append out "/share/doc/memtest86+-" ,version)))
> +               (for-each
> +                (lambda (file)
> +                  (install-file file lib))
> +                (list "memtest"
> +                      "memtest.bin"))
> +               (for-each
> +                (lambda (file)
> +                  (install-file file doc))
> +                (list "FAQ"
> +                      "README"))))))

Please return #t.

Otherwise LGTM!

Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#32890; Package guix-patches. (Tue, 02 Oct 2018 09:46:02 GMT) Full text and rfc822 format available.

Message #23 received at 32890 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Tobias Geerinckx-Rice <me <at> tobias.gr>
Cc: 32890 <at> debbugs.gnu.org
Subject: Re: [bug#32890] [PATCH 1/2] gnu: Add memtest86+.
Date: Tue, 02 Oct 2018 11:45:20 +0200
Tobias Geerinckx-Rice <me <at> tobias.gr> skribis:

> * gnu/packages/hardware.scm (memtest86+): New public variable.

[...]

> +    ;; XXX How can I ask to simply 'build the same thing on x86_64 as on i686'?
> +    (supported-systems (list "i686-linux"))

And yes, #:system is the way.  Then you can add x86_64-linux to
‘supported-systems’, it can’t hurt.

Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#32890; Package guix-patches. (Tue, 02 Oct 2018 09:46:02 GMT) Full text and rfc822 format available.

Message #26 received at 32890 <at> debbugs.gnu.org (full text, mbox):

From: ludo <at> gnu.org (Ludovic Courtès)
To: Tobias Geerinckx-Rice <me <at> tobias.gr>
Cc: 32890 <at> debbugs.gnu.org
Subject: Re: [bug#32890] [PATCH 2/2] gnu: Add memtester.
Date: Tue, 02 Oct 2018 11:45:46 +0200
Tobias Geerinckx-Rice <me <at> tobias.gr> skribis:

> * gnu/packages/hardware.scm (memtester): New public variable.

LGTM, thanks!

Ludo'.




Reply sent to Tobias Geerinckx-Rice <me <at> tobias.gr>:
You have taken responsibility. (Thu, 04 Oct 2018 02:32:02 GMT) Full text and rfc822 format available.

Notification sent to Tobias Geerinckx-Rice <me <at> tobias.gr>:
bug acknowledged by developer. (Thu, 04 Oct 2018 02:32:02 GMT) Full text and rfc822 format available.

Message #31 received at 32890-done <at> debbugs.gnu.org (full text, mbox):

From: Tobias Geerinckx-Rice <me <at> tobias.gr>
To: 32890-done <at> debbugs.gnu.org
Subject: Re: [PATCH 0/2] test mems
Date: Thu, 04 Oct 2018 04:30:57 +0200
Pushed as 5eff43804eaed5744967f83edbaeb7ffdb77aec1 & 
fb5412511479c19b3e4c884e9cc65e652ea923e2 with the aforementioned 
changes, as well as descriptions which (I hope) better describe 
both tools' similarities and differences. 

Kind regards,

T G-R




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Thu, 01 Nov 2018 11:24:06 GMT) Full text and rfc822 format available.

This bug report was last modified 6 years and 234 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.