Announcement

Collapse
No announcement yet.

pts/aio-stress fails to install

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • pts/aio-stress fails to install

    Hi Michael,

    I'm having problems installing the pts/disk suite. In particular pts/aio-stress fails to install.
    When I call to install dependencies it exits with no errros so I'm assuing it's not a dependency problem.

    Code:
    phoronix-test-suite install pts/aio-stress
    
    Phoronix Test Suite v3.6.1
    
        To Install: pts/aio-stress-1.1.0
    
        Determining File Requirements ..........................................
        Searching Download Caches ..............................................
    
        1 Test To Install
            1MB Of Disk Space Is Needed
    
        pts/aio-stress-1.1.0:
            Test Installation 1 of 1
            1 File Needed [0.04 MB / 1 Minute]
            File Found: aio-stress.c                                    [0.04MB]
            Installation Size: 0.5 MB
            Installing Test @ 03:56:32
                The installer exited with a non-zero exit status.
                Installation Log: /home/latebeat/.phoronix-test-suite/installed-tests/pts/aio-stress-1.1.0/install-failed.log
    
    
    The following tests failed to install:
    
            - pts/aio-stress-1.1.0

    I'm using kubuntu 12.04 kernel 3.2.0-32 and here's the install log:

    Code:
    aio-stress.c: In function 'worker':
    aio-stress.c:1175:3: warning: format '%d' expects argument of type 'int', but argument 3 has type 'long int' [-Wformat]
    aio-stress.c: In function 'main':
    aio-stress.c:1455:10: warning: format '%Lu' expects argument of type 'long long unsigned int', but argument 3 has type 'off_t' [-Wformat]
    aio-stress.c:1459:5: warning: format '%Lu' expects argument of type 'long long unsigned int', but argument 3 has type 'off_t' [-Wformat]
    aio-stress.c:1464:6: warning: format '%Lu' expects argument of type 'long long unsigned int', but argument 6 has type 'off_t' [-Wformat]
    /tmp/ccGyp5vN.o: In function `read_some_events':
    aio-stress.c:(.text+0xc9a): undefined reference to `io_getevents'
    /tmp/ccGyp5vN.o: In function `io_oper_wait':
    aio-stress.c:(.text+0xe77): undefined reference to `io_getevents'
    /tmp/ccGyp5vN.o: In function `run_built':
    aio-stress.c:(.text+0x1552): undefined reference to `io_submit'
    /tmp/ccGyp5vN.o: In function `aio_setup':
    aio-stress.c:(.text+0x1a7e): undefined reference to `io_queue_init'
    /tmp/ccGyp5vN.o: In function `worker':
    aio-stress.c:(.text+0x279e): undefined reference to `io_queue_release'
    /tmp/ccGyp5vN.o: In function `run_workers':
    aio-stress.c:(.text+0x27f3): undefined reference to `pthread_create'
    aio-stress.c:(.text+0x2845): undefined reference to `pthread_join'
    collect2: ld returned 1 exit status
    any support would be really appreciated as there's nothing I could find on google.

  • #2
    I'm having this exact same problem. Were you able to find a solution?

    Comment


    • #3
      Originally posted by jws7 View Post
      I'm having this exact same problem. Were you able to find a solution?
      Unfortunately, I wasn't and I had to leave aio-stress out of my benchmarks. Let us know if u find something as well!

      Comment


      • #4
        Originally posted by latebeat View Post
        Unfortunately, I wasn't and I had to leave aio-stress out of my benchmarks. Let us know if u find something as well!
        I'm having this same problem, but I'm having problems installing the pts/cairo-demos suite on Fedora.
        Install log:
        /tmp/pts-compiler-mask-cairo-demos1.0.1//gcc: redirection error: cannot duplicate fd: Too many open files
        /tmp/pts-compiler-mask-cairo-demos1.0.1//gcc: line 5: /tmp/pts-compiler-mask-cairo-demos1.0.1/CC-options-gcc: Too many open files
        /tmp/pts-compiler-mask-cairo-demos1.0.1//gcc: line 5: /tmp/pts-compiler-mask-cairo-demos1.0.1/CC-options-gcc: Too many open files
        /bin/bash: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: Error 24

        Comment


        • #5
          Originally posted by latebeat View Post
          Unfortunately, I wasn't and I had to leave aio-stress out of my benchmarks. Let us know if u find something as well!
          Ok I solved it.

          The problem is that for some reason, gcc is not including the libraries that aio-stress requires to compile. You can see this by compiling the aio-stress.c file manually with the additional flags: "-laio" and "-lpthread"

          Doing this will result in a working aio-stress binary, so you need to pass these flags to the main system gcc when it used by phoronix.

          This is how I did it:

          First, make sure that libaio-dev is installed

          Code:
          sudo apt-get install libaio-dev
          Then re-name gcc "gcc1"

          Code:
          sudo mv /usr/bin/gcc /usr/bin/gcc1
          Then create a file named "gcc" and paste in this python code:
          Code:
          sudo vim /usr/bin/gcc
          Code:
          #!/usr/bin/env python
          
          import sys
          import subprocess
          
          def main():
          	args = ['gcc1']
          	args.extend(sys.argv[1:])
          	args.extend(["-laio", "-lpthread"])
          	print args
          	subprocess.call(args)
          
          if __name__ == '__main__': 
          	main()
          Finally, set the correct permissions:

          Code:
          sudo chmod +x /usr/bin/gcc
          Then you should be able to install the test successfully:

          Code:
          phoronix-test-suite install-test pts/aio-stress
          NOTE: Obviously this will change the system-wide gcc to include the two libraries "laio" and "pthread". Once the test has been successfully installed, you can put gcc back to normal with:

          Code:
          sudo mv /usr/bin/gcc1 /usr/bin/gcc
          Hope this is helpful! I'm so pleased to have this finally working!
          Last edited by jws7; 11-27-2012, 11:33 AM.

          Comment


          • #6
            Great job and thanks for sharing! I will try it as well.

            Comment


            • #7
              Originally posted by latebeat View Post
              Great job and thanks for sharing! I will try it as well.
              Thanks for your help, but the issue still exists on my Fedora system.

              Comment


              • #8
                If you already the aio library installed there is a cleaner way to get the compiler the right arguments. You just need to change the file: ~/.phoronix-test-suite/test-profiles/pts/aio-stress-1.1.0/install.sh to be the following (note the "-laio -lpthread" has been moved to end of the cc command):

                Code:
                #!/bin/sh
                
                cc -Wall -o aio-stress-bin aio-stress.c -laio -lpthread
                echo $? > ~/install-exit-status
                
                # add support for allowing aio-test-file to be on removable media devices
                echo "#!/bin/sh
                ./aio-stress-bin \$@ aio-test-file > \$LOG_FILE 2>&1
                echo \$? > ~/test-exit-status
                rm -f aio-test-file" > aio-stress
                chmod +x aio-stress
                That got the test to work find on my Ubuntu 12.04 system.

                Comment

                Working...
                X