Re: SUJ Changes

From: Marcelo/Porks <marcelorossi_at_gmail.com>
Date: Tue, 25 May 2010 19:49:39 -0300
On 5/17/10, Jeff Roberson <jroberson_at_jroberson.net> wrote:
> I fixed the sparse inode tunefs bug and changed the tunefs behavior based
> on discussions here on current_at_.  Hopefully this works for everyone.

Hi! I tested the r208241 and it's seems to be ok but this calls my
atention to other thing: Could I disable de SU when the SUJ is
enabled?

I did some tests and seems that I can do this (logs bellow).

But will SUJ work properly with SU disabled?

Thanks.

========== logs ============
BARAD-DUR# uname -a
FreeBSD BARAD-DUR.BUTECO 9.0-CURRENT FreeBSD 9.0-CURRENT #11 r208366:
Thu May 20 21:52:36 BRT 2010
porks_at_BARAD-DUR.BUTECO:/usr/obj/usr/src/sys/BARAD-DUR  i386
BARAD-DUR# df -h /dev/ad2s1d
Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/ad2s1d     72G     54G     12G    82%
BARAD-DUR# df -h | grep /dev/ad2s1d
BARAD-DUR# tunefs -p /dev/ad2s1d
tunefs: POSIX.1e ACLs: (-a)                                disabled
tunefs: NFSv4 ACLs: (-N)                                   disabled
tunefs: MAC multilabel: (-l)                               disabled
tunefs: soft updates: (-n)                                 enabled
tunefs: soft update journaling: (-j)                       disabled
tunefs: gjournal: (-J)                                     disabled
tunefs: maximum blocks per file in a cylinder group: (-e)  2048
tunefs: average file size: (-f)                            16384
tunefs: average number of files in a directory: (-s)       64
tunefs: minimum percentage of free space: (-m)             8%
tunefs: optimization preference: (-o)                      time
tunefs: volume label: (-L)
BARAD-DUR# tunefs -j enable /dev/ad2s1d
Using inode 13 in cg 0 for 33554432 byte journal
tunefs: soft updates journaling set
BARAD-DUR# tunefs -p /dev/ad2s1d
tunefs: POSIX.1e ACLs: (-a)                                disabled
tunefs: NFSv4 ACLs: (-N)                                   disabled
tunefs: MAC multilabel: (-l)                               disabled
tunefs: soft updates: (-n)                                 enabled
tunefs: soft update journaling: (-j)                       enabled
tunefs: gjournal: (-J)                                     disabled
tunefs: maximum blocks per file in a cylinder group: (-e)  2048
tunefs: average file size: (-f)                            16384
tunefs: average number of files in a directory: (-s)       64
tunefs: minimum percentage of free space: (-m)             8%
tunefs: optimization preference: (-o)                      time
tunefs: volume label: (-L)
BARAD-DUR# tunefs -n disable /dev/ad2s1d
tunefs: soft updates cleared
BARAD-DUR# tunefs -p /dev/ad2s1d
tunefs: POSIX.1e ACLs: (-a)                                disabled
tunefs: NFSv4 ACLs: (-N)                                   disabled
tunefs: MAC multilabel: (-l)                               disabled
tunefs: soft updates: (-n)                                 disabled
tunefs: soft update journaling: (-j)                       enabled
tunefs: gjournal: (-J)                                     disabled
tunefs: maximum blocks per file in a cylinder group: (-e)  2048
tunefs: average file size: (-f)                            16384
tunefs: average number of files in a directory: (-s)       64
tunefs: minimum percentage of free space: (-m)             8%
tunefs: optimization preference: (-o)                      time
tunefs: volume label: (-L)
BARAD-DUR# mount /dev/ad2s1d
BARAD-DUR# df -h | grep /dev/ad2s1d
/dev/ad2s1d     72G     54G     12G    82%    /mnt/ad2s1d
BARAD-DUR# ls -lah /mnt/ad2s1d/test.log
ls: /mnt/ad2s1d/test.log: No such file or directory
BARAD-DUR# echo "test data" >> /mnt/ad2s1d/test.log
BARAD-DUR# ls -lah /mnt/ad2s1d/test.log
-rw-r--r--  1 root  wheel    10B May 25 19:36 /mnt/ad2s1d/test.log
BARAD-DUR# cat /mnt/ad2s1d/test.log
test data
BARAD-DUR#


> I have one bad perf bug and one journal overflow bug left to resolve.
> Please keeps the reports coming and thank you for your help.
>
> Thanks,
> Jeff
>
> ---------- Forwarded message ----------
> Date: Tue, 18 May 2010 01:45:28 +0000 (UTC)
> From: Jeff Roberson <jeff_at_FreeBSD.org>
> To: src-committers_at_freebsd.org, svn-src-all_at_freebsd.org,
>      svn-src-head_at_freebsd.org
> Subject: svn commit: r208241 - head/sbin/tunefs
>
> Author: jeff
> Date: Tue May 18 01:45:28 2010
> New Revision: 208241
> URL: http://svn.freebsd.org/changeset/base/208241
>
> Log:
>     - Round up the journal size to the block size so we don't confuse fsck.
>
>    Reported by:	Mikolaj Golub <to.my.trociny_at_gmail.com>
>
>     - Only require 256k of blocks per-cg when trying to allocate contiguous
>       journal blocks.  The storage may not actually be contiguous but is at
>       least within one cg.
>     - When disabling SUJ leave SU enabled and report this to the user.  It
>       is expected that users will upgrade SU filesystems to SUJ and want
>       a similar downgrade path.
>
> Modified:
>    head/sbin/tunefs/tunefs.c
>
> Modified: head/sbin/tunefs/tunefs.c
> ==============================================================================
> --- head/sbin/tunefs/tunefs.c	Tue May 18 00:46:15 2010	(r208240)
> +++ head/sbin/tunefs/tunefs.c	Tue May 18 01:45:28 2010	(r208241)
> _at__at_ -358,10 +358,12 _at__at_ main(int argc, char *argv[])
>   				warnx("%s remains unchanged as disabled", name);
>   			} else {
>   				journal_clear();
> - 				sblock.fs_flags &= ~(FS_DOSOFTDEP | FS_SUJ);
> + 				sblock.fs_flags &= ~FS_SUJ;
>   				sblock.fs_sujfree = 0;
> - 				warnx("%s cleared, "
> -				    "remove .sujournal to reclaim space", name);
> + 				warnx("%s cleared but soft updates still set.",
> +				    name);
> +
> +				warnx("remove .sujournal to reclaim space");
>   			}
>    		}
>   	}
> _at__at_ -546,7 +548,7 _at__at_ journal_balloc(void)
>   			 * Try to minimize fragmentation by requiring a minimum
>   			 * number of blocks present.
>   			 */
> -			if (cgp->cg_cs.cs_nbfree > 128 * 1024 * 1024)
> +			if (cgp->cg_cs.cs_nbfree > 256 * 1024)
>   				break;
>   			if (contig == 0 && cgp->cg_cs.cs_nbfree)
>   				break;
> _at__at_ -906,6 +908,8 _at__at_ journal_alloc(int64_t size)
>   		if (size / sblock.fs_fsize > sblock.fs_fpg)
>   			size = sblock.fs_fpg * sblock.fs_fsize;
>   		size = MAX(SUJ_MIN, size);
> +		/* fsck does not support fragments in journal files. */
> +		size = roundup(size, sblock.fs_bsize);
>   	}
>   	resid = blocks = size / sblock.fs_bsize;
>   	if (sblock.fs_cstotal.cs_nbfree < blocks) {
> _______________________________________________
> freebsd-current_at_freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-current
> To unsubscribe, send any mail to "freebsd-current-unsubscribe_at_freebsd.org"
>


-- 
Marcelo Rossi
"This e-mail is provided "AS IS" with no warranties, and confers no rights."
Received on Tue May 25 2010 - 21:17:42 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:03 UTC