1、AXFS Advanced XIP Filing SystemJared Hulbert Numonyx April 15, 2008,Agenda,Goal/History Features Architecture Test Results Kernel Integration,Project Goals,Supportable solution for application XIP Fine grained control on compression Flexible use of all system memories NOR, NAND, RAM,What is Applicat
2、ion XIP?,eXecute In Place of userspace code Run code from where it is stored on Flash Saves memory No paging = higher performance “I thought the kernel supported XIP?” Yes, for ext2 with specialized hardware Yes, for kernel code segments (xipImage),Why a New Filesystem?,CRAMFS XIP patches used to wo
3、rk BUT. 9 years old and havent been merged? patches broke, real bad, every year File level compression choice SquashFS? New, better compression BUT Block device oriented architecture Didnt see how to fit new concepts into arch,Features,Onmedia Format,Region Descriptor,Super Block,File Info,XIP Regio
4、n,Region Descriptor,Compressed Region,Region Descriptor,Superblock Points to many region descriptor Region Descriptor Describes / points to one region Regions Each data type / table has own region permissions, file names, file node info, file data, etc.,Data Flow,Application Virtual Pages,Node Index
5、,XIP,Compressed,Node Type Table,inode,/dev/mtd0 (NAND),Mount Options,/dev/mtd0 (NOR),AXFS Image,/dev/sda0,AXFS Image,/file.axfs (-o loop),AXFS Image,AXFS Image,/dev/mtd0 (NOR),AXFS Image Part 1 (MMAP),/dev/mtd1 (NAND),AXFS Image Part 2 (IO),mount t axfs o block_dev=/dev/mtd1 /dev/mtd0 /mnt/axfs,Imag
6、e Size Comparison,1 year old Opie build from OpenEmbedded,Total Memory Used,Fitting into Real Chips,Performance: direct comparison,PXA270Linux-2.6.22Opie build,520 MHz (CPU) 208 MHz (memory clock) 104 MHz (SDRAM bus) 52 MHz (NOR flash bus)xipImage CONFIG_PREEMPT=y MTD updated to Sept 25 git pull “me
7、m=24MB” in kernel commandlineOpenEmbedded 1 year old,Performance: Direct Comparison,Root Filing System Comparison Video at: http:/ realistic comparison,Started with commercial phone PXA270, 48MB RAM, 32MB NOR, 96MB NAND 297 MHz (CPU) / 97 MHz (SDRAM bus) /48 MHz (NOR flash bus) code in CRAMFS from N
8、OR data in NAND “XIP” code in AXFS from NOR data in NAND “SnD” code in CRAMFS from NAND data on NAND,Performance: realistic comparison,XIP vs. SND: Realistic Performance Comparison Video at: http:/ Integration Status,Patches VM_MIXEDMAP / pageless XIP patchset just got in mm tree 2.6.26? Physaddr in mtd-point() Waiting on dwmw2 Todo Features Added compression options (LZO, LZMA, etc) brd RAM disk support,Resources,Git tree git:/git.infradead.org/home/jehulber/axfs.gitSourceforge site http:/,App launch time,