wiki:jazz/09-05-08

Version 9 (modified by jazz, 16 years ago) (diff)

--

2009-05-08

File System : Lustre

  • Lustre 2.0 Alpha 已經釋出了。下載點:
  • 在 Lustre User Meeting 2009 的議程中,Peter Bojanic 提到了 Lustre 的 Roadmap,我比較注意的兩點是:(1) Write Back Cache 跟 (2) pNFS exports
  • 目前全球 HPC 前十大有七個採用 Lustre 1.6 版本。而 I/O 最高紀錄保持者為 190 GB/s,這也意味著先前測試到 2 GB/s 算是小 case 啦!!
  • 1.6 版將於 2010 四月停止維護,因此想要玩的可以開始轉換到 1.8 了。

Linux Programming

  • [專案] 在 Windows 底下常用的 inportb() 跟 outportb(),在 Linux 底下可以用 port I/O (有很多種 outb(), outw(), outl(), outsb(), outsw(), outsl(), inb(), inw(), inl(), insb(), insw(), insl() ) 來實現。而在 VxWorks 則用 sysInByte() 跟 sysOutByte() 來實現
    static int outportb(unsigned int port, unsigned int val, int size)
    {
      static int iopldone = 0;
    
    #ifdef DEBUG
      printf("outportb(0x%04x)<=0x%02x\n", port, val);
    #endif
    
      if (port > 1024) {
        if (!iopldone && iopl(3)) {
          fprintf(stderr, "iopl(): %s\n", strerror(errno));
        return 1;
        }
        iopldone++;
      } else if (ioperm(port,size,1)) {
        fprintf(stderr, "ioperm(%x): %s\n", port, strerror(errno));
        return 1;
      }
    
      if (size == 4)
        outl(val, port);
      else if (size == 2)
        outw(val&0xffff, port);
      else
        outb(val&0xff, port);
      return 0;
    }
    
    static int inportb(unsigned int port, int size)
    {
      static int iopldone = 0;
    
    #ifdef DEBUG
      printf("inportb(0x%04x)\n", port);
    #endif
    
      if (port > 1024) {
        if (!iopldone && iopl(3)) {
        fprintf(stderr, "iopl(): %s\n", strerror(errno));
        return 1;
        }
        iopldone++;
      } else if (ioperm(port,size,1)) {
        fprintf(stderr, "ioperm(%x): %s\n", port, strerror(errno));
        return 1;
      }
    
      if (size == 4)
        return inl(port);
      else if (size == 2)
        return inw(port) & 0xffff;
      else
        return inb(port) & 0xff;
    }
    

Fast Boot

Attachments (5)

Download all attachments as: .zip