home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   linux.debian.kernel      Debian kernel discussions      2,884 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 1,605 of 2,884   
   Filippo Giunchedi to All   
   Bug#1121006: linux: reported optimal_io_   
   19 Nov 25 14:50:01   
   
   XPost: linux.debian.bugs.dist   
   From: filippo@debian.org   
      
   Source: linux   
   Version: 6.12.57-1   
   Severity: important   
      
   Dear Maintainer,   
   At Wikimedia Foundation we are running Trixie debian-installer on Dell r450   
   hardware with an mpt3sas (HBA355i with id 1000:00e6) controller and SSD   
   attached. While debian-installer finished successfully, grub was then unable to   
   boot the installed system.   
      
   Partman is instructed to assemble a raid10 over four devices with LVM on top.   
   Upon inspection the LVM PV is created with ~4GB metadata area which tricks grub   
   into allocating the same amount of memory during LVM detection. While   
   grub-install taking ~4GB of RAM "works" during installation, albeit   
   grub-install being quite slow, it obviously fails when booting.   
      
   I tracked down the problem to md0 reporting optimal_io_size of ~4GB, and LVM   
   defaults to align metadata with said size, resulting in abnormally large   
   PV metadata area.   
      
   The large md0 optimal_io_size seems to come from component devices reporting   
   16MB optimal_io_size as shown below.   
      
   This host was working fine with Bookworm, which makes me think something has   
   changed in mpt3sas.   
      
   My understanding is that the controller queries devices via block limits VPD   
   page for these values, and I'm attaching the output below. The original task   
   which spawned this work is https://phabricator.wikimedia.org/T407586   
      
   I'm happy to conduct further testing for bug fixes and/or investigation.   
      
   best,   
   Filippo   
      
   ====   
      
   # uname -a   
   Linux cloudcontrol2010-dev 6.12.57+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian   
   6.12.57-1 (2025-11-05) x86_64 GNU/Linux   
      
   # lsblk -t   
   NAME           ALIGNMENT MIN-IO     OPT-IO PHY-SEC LOG-SEC ROTA SCHED         
   RQ-SIZE      RA WSAME   
   sda                    0   4096   16773120    4096     512    0    
   q-deadline     256   32760    0B   
   |-sda1                 0   4096   16773120    4096     512    0    
   q-deadline     256   32760    0B   
   |-sda2                 0   4096   16773120    4096     512    0    
   q-deadline     256   32760    0B   
   `-sda3                 0   4096   16773120    4096     512    0    
   q-deadline     256   32760    0B   
     `-md0                0 524288 4293918720    4096     512       
                        4192256    0B   
       |-vg0-swap         0 524288 4293918720    4096     512       
                        4192256    0B   
       |-vg0-root         0 524288 4293918720    4096     512       
                        4192256    0B   
       `-vg0-srv          0 524288 4293918720    4096     512       
                        4192256    0B   
   sdb                    0   4096   16773120    4096     512    0    
   q-deadline     256   32760    0B   
   |-sdb1                 0   4096   16773120    4096     512    0    
   q-deadline     256   32760    0B   
   |-sdb2                 0   4096   16773120    4096     512    0    
   q-deadline     256   32760    0B   
   `-sdb3                 0   4096   16773120    4096     512    0    
   q-deadline     256   32760    0B   
     `-md0                0 524288 4293918720    4096     512       
                        4192256    0B   
       |-vg0-swap         0 524288 4293918720    4096     512       
                        4192256    0B   
       |-vg0-root         0 524288 4293918720    4096     512       
                        4192256    0B   
       `-vg0-srv          0 524288 4293918720    4096     512       
                        4192256    0B   
   sdc                    0   4096   16773120    4096     512    0    
   q-deadline     256   32760    0B   
   |-sdc1                 0   4096   16773120    4096     512    0    
   q-deadline     256   32760    0B   
   |-sdc2                 0   4096   16773120    4096     512    0    
   q-deadline     256   32760    0B   
   `-sdc3                 0   4096   16773120    4096     512    0    
   q-deadline     256   32760    0B   
     `-md0                0 524288 4293918720    4096     512       
                        4192256    0B   
       |-vg0-swap         0 524288 4293918720    4096     512       
                        4192256    0B   
       |-vg0-root         0 524288 4293918720    4096     512       
                        4192256    0B   
       `-vg0-srv          0 524288 4293918720    4096     512       
                        4192256    0B   
   sdd                    0   4096   16773120    4096     512    0    
   q-deadline     256   32760    0B   
   |-sdd1                 0   4096   16773120    4096     512    0    
   q-deadline     256   32760    0B   
   |-sdd2                 0   4096   16773120    4096     512    0    
   q-deadline     256   32760    0B   
   `-sdd3                 0   4096   16773120    4096     512    0    
   q-deadline     256   32760    0B   
     `-md0                0 524288 4293918720    4096     512       
                        4192256    0B   
       |-vg0-swap         0 524288 4293918720    4096     512       
                        4192256    0B   
       |-vg0-root         0 524288 4293918720    4096     512       
                        4192256    0B   
       `-vg0-srv          0 524288 4293918720    4096     512       
                        4192256    0B   
      
      
   # pvck --dump headers /dev/md0   
     label_header at 512   
     label_header.id LABELONE   
     label_header.sector 1   
     label_header.crc 0xbdf3a961   
     label_header.offset 32   
     label_header.type LVM2 001   
     pv_header at 544   
     pv_header.pv_uuid KDkSuWsrIico15Y0PenxiLzT8Ad2dGLa   
     pv_header.device_size 1919546294272   
     pv_header.disk_locn[0] at 584 # location of data area   
     pv_header.disk_locn[0].offset 4293918720   
     pv_header.disk_locn[0].size 0   
     pv_header.disk_locn[1] at 600 # location list end   
     pv_header.disk_locn[1].offset 0   
     pv_header.disk_locn[1].size 0   
     pv_header.disk_locn[2] at 616 # location of metadata area   
     pv_header.disk_locn[2].offset 4096   
     pv_header.disk_locn[2].size 4293914624   
     pv_header.disk_locn[3] at 632 # location list end   
     pv_header.disk_locn[3].offset 0   
     pv_header.disk_locn[3].size 0   
     pv_header_extension at 648   
     pv_header_extension.version 2   
     pv_header_extension.flags 1   
     pv_header_extension.disk_locn[0] at 656 # location list end   
     pv_header_extension.disk_locn[0].offset 0   
     pv_header_extension.disk_locn[0].size 0   
     mda_header_1 at 4096 # metadata area   
     mda_header_1.checksum 0x84d8039   
     mda_header_1.magic 0x204c564d3220785b35412572304e2a3e   
     mda_header_1.version 1   
     mda_header_1.start 4096   
     mda_header_1.size 4293914624   
      
   [continued in next message]   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca