lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Date:	Sun, 29 Apr 2007 12:22:37 -0500
From:	Eric Sandeen <sandeen@...deen.net>
To:	Justin Piszcz <jpiszcz@...idpixels.com>
CC:	xfs@....sgi.com, linux-kernel@...r.kernel.org
Subject: Re: mkfs.xfs cannot make sector size 64 KiB?

Justin Piszcz wrote:
> Adding LKML to cc list.
> 
> On Sun, 29 Apr 2007, Justin Piszcz wrote:
> 
>>> From the manpage:
>>
>>       -b     Block size options.
>>
>>              This option specifies the fundamental block size of the 
>> filesys-
>>              tem.   The  valid suboptions are: log=value and 
>> size=value; only
>>              one can be supplied.  The block size is specified  
>> either  as a
>>              base two logarithm value with log=, or in bytes with 
>> size=. The
>>              default value is 4096 bytes (4 KiB), the minimum is 512, 
>> and the
>>              maximum is 65536 (64 KiB).  XFS on Linux currently only 
>> supports
>>              pagesize or smaller blocks.
>>
>> The maximum size is 64 KiB, yet it seems only up to 32 KiB is valid?

above is block size, not sector size

>> I am running x86_64.

then you are limited to blocks (and therefore sectors) <= page size, so 
<= 4096.

You can -mkfs- something bigger, but you won't be able to mount it.

>> $ uname -m
>> x86_64
>>
>>
>> p34:~# mkfs.xfs -b size=512 /dev/md3
>> mkfs.xfs: /dev/md3 appears to contain an existing filesystem (xfs).
>> mkfs.xfs: Use the -f option to force overwrite.
>> p34:~# mkfs.xfs -b size=4096 /dev/md3
>> mkfs.xfs: /dev/md3 appears to contain an existing filesystem (xfs).
>> mkfs.xfs: Use the -f option to force overwrite.
>> p34:~# mkfs.xfs -b size=8192 /dev/md3
>> mkfs.xfs: /dev/md3 appears to contain an existing filesystem (xfs).
>> mkfs.xfs: Use the -f option to force overwrite.
>> p34:~# mkfs.xfs -b size=16384 /dev/md3
>> mkfs.xfs: /dev/md3 appears to contain an existing filesystem (xfs).
>> mkfs.xfs: Use the -f option to force overwrite.
>> p34:~# mkfs.xfs -b size=32768 /dev/md3
>> mkfs.xfs: /dev/md3 appears to contain an existing filesystem (xfs).
>> mkfs.xfs: Use the -f option to force overwrite.
>> p34:~# mkfs.xfs -b size=65536 /dev/md3
>> illegal sector size 65536

This is mkfs.xfs trying to be smart about making larger "sectors" (== 
blocksize) on an md device, so that it does not switch the size of the 
IO requests between data & metadata, slowing things down significantly. 
  however,

        -s     Sector size options.

               This  option  specifies the fundamental sector size of 
the filesystem.  The
               valid suboptions are: log=value and size=value; only one 
can  be  supplied.
               The  sector  size  is  specified  either as a base two 
logarithm value with
               log=, or in bytes with size=.  The default value is 512 
bytes.  The minimum
               value  for  sector  size is 512; the maximum is 32768 (32 
KiB).  The sector
               size must be a power of 2 size and cannot be made larger 
than the  filesys-
               tem block size.


looks like a buglet where it is trying to make a block == sector == 64k, 
but sectors are limited to 32.

But this is not what you want anyway, assuming you want to actually 
*mount* your new  filesystem on x86_64.  Just make take default 
blocksize (4k) and be happy.

>> Usage: mkfs.xfs
>> /* blocksize */         [-b log=n|size=num]
>> /* data subvol */       [-d agcount=n,agsize=n,file,name=xxx,size=num,
>>                            (sunit=value,swidth=value|su=num,sw=num),
>>                            sectlog=n|sectsize=num,unwritten=0|1]
>> /* inode size */        [-i 
>> log=n|perblock=n|size=num,maxpct=n,attr=0|1|2]
>> /* log subvol */        [-l 
>> agnum=n,internal,size=num,logdev=xxx,version=n
>>                            sunit=value|su=num,sectlog=n|sectsize=num]
>> /* label */             [-L label (maximum 12 characters)]
>> /* naming */            [-n log=n|size=num,version=n]
>> /* prototype file */    [-p fname]
>> /* quiet */             [-q]
>> /* realtime subvol */   [-r extsize=num,size=num,rtdev=xxx]
>> /* sectorsize */        [-s log=n|size=num]
>> /* version */           [-V]
>>                        devicename
>> <devicename> is required unless -d name=xxx is given.
>> <num> is xxx (bytes), xxxs (sectors), xxxb (fs blocks), xxxk (xxx KiB),
>>      xxxm (xxx MiB), xxxg (xxx GiB), xxxt (xxx TiB) or xxxp (xxx PiB).
>> <value> is xxx (512 byte blocks).
>> p34:~#
>>
>> Unless, the page size is not <= 64 for x86_64?

it's not, but that's not why this broke.

-Eric

>> Justin.
>>
>>
> 
> 

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ