[Cluster-devel] Re: Why the gfs2 performance regressed?
On Jan 3, 2008 3:27 PM, Denis Cheng [EMAIL PROTECTED] wrote: I compiled an older kernel release and 2.6.21.7 has been tested to be good, samba writing tests report 70 MB/s again. I'm now testing a newer kernel release. After some bisecting work, now 2.6.22.15 is verified to be able to support samba high performance, while 2.6.23 cannot, -- Denis Cheng
[Cluster-devel] [GFS2] Allow page migration for writeback and ordered pages
From c2d6be02fdb6a968e3d5eef1a3c13dbf731fd0e9 Mon Sep 17 00:00:00 2001 From: Steven Whitehouse [EMAIL PROTECTED] Date: Thu, 3 Jan 2008 11:31:38 + Subject: [PATCH] [GFS2] Allow page migration for writeback and ordered pages To improve performance on NUMA, we use the VM's standard page migration for writeback and ordered pages. Probably we could also do the same for journaled data, but that would need a careful audit of the code, so will be the subject of a later patch. Signed-off-by: Steven Whitehouse [EMAIL PROTECTED] diff --git a/fs/gfs2/ops_address.c b/fs/gfs2/ops_address.c index 8f94e30..e16ad81 100644 --- a/fs/gfs2/ops_address.c +++ b/fs/gfs2/ops_address.c @@ -1098,6 +1098,7 @@ static const struct address_space_operations gfs2_writeback_aops = { .invalidatepage = gfs2_invalidatepage, .releasepage = gfs2_releasepage, .direct_IO = gfs2_direct_IO, + .migratepage = buffer_migrate_page, }; static const struct address_space_operations gfs2_ordered_aops = { @@ -1112,6 +1113,7 @@ static const struct address_space_operations gfs2_ordered_aops = { .invalidatepage = gfs2_invalidatepage, .releasepage = gfs2_releasepage, .direct_IO = gfs2_direct_IO, + .migratepage = buffer_migrate_page, }; static const struct address_space_operations gfs2_jdata_aops = { -- 1.5.1.2
[Cluster-devel] [GFS2 patch] Initialize extent_list earlier
Hi, Here is a patch for the latest upstream GFS2 code: The journal extent map needs to be initialized sooner than it currently is. Otherwise failed mount attempts (e.g. not enough journals, etc.) may panic trying to access the uninitialized list. Regards, Bob Peterson Signed-off-by: Bob Peterson [EMAIL PROTECTED] -- fs/gfs2/ops_fstype.c |1 - fs/gfs2/super.c |1 + 2 files changed, 1 insertions(+), 1 deletions(-) diff --git a/fs/gfs2/ops_fstype.c b/fs/gfs2/ops_fstype.c index a77d41f..9ffc10b 100644 --- a/fs/gfs2/ops_fstype.c +++ b/fs/gfs2/ops_fstype.c @@ -330,7 +330,6 @@ static int map_journal_extents(struct gfs2_sbd *sdp) struct buffer_head bh; int rc = 0; - INIT_LIST_HEAD(jd-extent_list); prev_db = 0; for (lb = 0; lb ip-i_di.di_size sdp-sd_sb.sb_bsize_shift; lb++) { diff --git a/fs/gfs2/super.c b/fs/gfs2/super.c index 73e49df..fa86038 100644 --- a/fs/gfs2/super.c +++ b/fs/gfs2/super.c @@ -385,6 +385,7 @@ int gfs2_jindex_hold(struct gfs2_sbd *sdp, struct gfs2_holder *ji_gh) if (!jd) break; + INIT_LIST_HEAD(jd-extent_list); jd-jd_inode = gfs2_lookupi(sdp-sd_jindex, name, 1, NULL); if (!jd-jd_inode || IS_ERR(jd-jd_inode)) { if (!jd-jd_inode)
Re: [Cluster-devel] [GFS2 patch] Initialize extent_list earlier
Hi, Now in the -nmw git tree. Thanks, Steve. On Thu, 2008-01-03 at 09:24 -0600, Bob Peterson wrote: Hi, Here is a patch for the latest upstream GFS2 code: The journal extent map needs to be initialized sooner than it currently is. Otherwise failed mount attempts (e.g. not enough journals, etc.) may panic trying to access the uninitialized list. Regards, Bob Peterson Signed-off-by: Bob Peterson [EMAIL PROTECTED] -- fs/gfs2/ops_fstype.c |1 - fs/gfs2/super.c |1 + 2 files changed, 1 insertions(+), 1 deletions(-) diff --git a/fs/gfs2/ops_fstype.c b/fs/gfs2/ops_fstype.c index a77d41f..9ffc10b 100644 --- a/fs/gfs2/ops_fstype.c +++ b/fs/gfs2/ops_fstype.c @@ -330,7 +330,6 @@ static int map_journal_extents(struct gfs2_sbd *sdp) struct buffer_head bh; int rc = 0; - INIT_LIST_HEAD(jd-extent_list); prev_db = 0; for (lb = 0; lb ip-i_di.di_size sdp-sd_sb.sb_bsize_shift; lb++) { diff --git a/fs/gfs2/super.c b/fs/gfs2/super.c index 73e49df..fa86038 100644 --- a/fs/gfs2/super.c +++ b/fs/gfs2/super.c @@ -385,6 +385,7 @@ int gfs2_jindex_hold(struct gfs2_sbd *sdp, struct gfs2_holder *ji_gh) if (!jd) break; + INIT_LIST_HEAD(jd-extent_list); jd-jd_inode = gfs2_lookupi(sdp-sd_jindex, name, 1, NULL); if (!jd-jd_inode || IS_ERR(jd-jd_inode)) { if (!jd-jd_inode)
[Cluster-devel] conga ./conga.spec.in.in luci/homebase/form-macros
CVSROOT:/cvs/cluster Module name:conga Changes by: [EMAIL PROTECTED] 2008-01-03 16:27:49 Modified files: . : conga.spec.in.in luci/homebase : form-macros Log message: Fixed bz253720: trust box shouldn't be an option if it is required Patches: http://sourceware.org/cgi-bin/cvsweb.cgi/conga/conga.spec.in.in.diff?cvsroot=clusterr1=1.90r2=1.91 http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/homebase/form-macros.diff?cvsroot=clusterr1=1.63r2=1.64 --- conga/conga.spec.in.in 2007/11/06 23:05:06 1.90 +++ conga/conga.spec.in.in 2008/01/03 16:27:48 1.91 @@ -1,6 +1,6 @@ ### # -# Copyright (C) 2006-2007 Red Hat, Inc. All rights reserved. +# Copyright (C) 2006-2008 Red Hat, Inc. All rights reserved. # # This copyrighted material is made available to anyone wishing to use, # modify, copy, or redistribute it subject to the terms and conditions @@ -289,6 +289,7 @@ %changelog * Wed Sep 19 2007 Ryan McCabe [EMAIL PROTECTED] 0.12.0-1 +- Fixed bz253720: trust box shouldn't be an option if it is required - Fixed bz253842 (luci ignores File System Resource Configuration) - Fixed bz277661 (RFE: Better instructions on the luci login page if luci_admin not run.) - Fixed bz277711 (RFE: luci_admin should check that luci is running before asking for the password) --- conga/luci/homebase/form-macros 2008/01/02 20:52:23 1.63 +++ conga/luci/homebase/form-macros 2008/01/03 16:27:49 1.64 @@ -392,11 +392,11 @@ value sys/fp | nothing / /td td class=systemsTable - input type=checkbox checked tal:attributes= - id python: '__SYSTEM%dTrusted' % cur_sysnum; - name python: '__SYSTEM%dTrusted' % cur_sysnum; - disabled python: 'trusted' in sys - / + input type=checkbox checked=checked + tal:attributes= + id python: '__SYSTEM%dTrusted' % cur_sysnum; + name python: '__SYSTEM%dTrusted' % cur_sysnum; + disabled python: sys.has_key('trusted') / /td td class=systemsTable img src=delete-row.png class=deleteRow @@ -769,8 +769,10 @@ h2 class=homebaseAdd Cluster/h2 - tal:block tal:define= - global add_cluster request/SESSION/add_cluster | nothing / + tal:block + tal:define=global add_cluster request/SESSION/add_cluster | nothing / + tal:block + tal:define=global asked_for_certs add_cluster/show_certs | nothing / form name=adminform action= method=post tal:condition=add_cluster @@ -799,8 +801,8 @@ tr class=systemsTable th class=systemsTableNode Hostname/th th class=systemsTableRoot Password/th - th class=systemsTableKey ID/th - th class=systemsTableTrust/th + th tal:condition=asked_for_certs class=systemsTableKey ID/th + th tal:condition=asked_for_certs class=systemsTableTrust/th /tr /thead @@ -872,7 +874,7 @@ name python: '__SYSTEM%d:Passwd' % cur_sysnum / /tal:block /td - td class=systemsTable + td tal:condition=asked_for_certs class=systemsTable img tal:attributes= src python: 'trusted' in sys and 'lock-ok.png' or ('fp' in sys and 'lock-closed.png' or 'lock-open.png'); @@ -884,14 +886,27 @@ name python: '__SYSTEM%dFingerprint' % cur_sysnum;
Re: [Cluster-devel] [PATCH] RFC: cman changes
On Thu, 3 Jan 2008, Patrick Caulfeld wrote: This patch changes the way cman works internally - it decouples it from CCS so that any configuration system can be used. Provided the necessary keys are filled in the objdb then cman can use them. Currently the only alternative is /etc/ais/openais.conf, but it should be relatively easy to add others (eg LDAP) as people feel the need. Patrick Only a few _minor_ details: the patch needs a better rediff. This one doesn't apply clean on top of HEAD but nothing too bad :) Some bits: + if (comline-two_node) { + snprintf(scratch, sizeof(scratch), CMAN_2NODE=true); + envp[envptr++] = strdup(scratch); + } this one could land anytime (with it's getenv counterpart) + .name = (char *)openais CMAN membership service 2.50, I think we should be targetting 2.9x in preparation for 3.0 + // TODO get config_version ?? :) For the Makefile, just commit this one instead. Diff from the one that I did send you early is copyright update and do not link with libccs if we don't need to. Sorry for this double one :) Thanks Fabio ### ### ## ## Copyright (C) 2004-2008 Red Hat, Inc. All rights reserved. ## ## This copyrighted material is made available to anyone wishing to use, ## modify, copy, or redistribute it subject to the terms and conditions ## of the GNU General Public License v.2. ## ### ### TARGET1= service_cman.lcrso TARGET2= config_ccs.lcrso TARGET3= config_cmanpre.lcrso LCRSOT=$(TARGET1) $(TARGET2) $(TARGET3) all: depends ${TARGET1} ${TARGET2} ${TARGET3} include ../../make/defines.mk include $(OBJDIR)/make/cobj.mk include $(OBJDIR)/make/clean.mk include $(OBJDIR)/make/install.mk include $(OBJDIR)/make/uninstall.mk CFLAGS += -fPIC CFLAGS += -I${ccsincdir} -I${openaisincdir} CFLAGS += -I${incdir} CCS_LDFLAGS += -L${ccslibdir} -lccs OBJS1= daemon.o \ logging.o \ ais.o \ commands.o \ barrier.o \ cmanconfig.o OBJS2= config.o logging.o OBJS3= cman-preconfig.o \ logging.o ${TARGET1}: ${OBJS1} $(CC) -shared -Wl,-soname,$@ -o $@ $^ $(LDFLAGS) ${TARGET2}: ${OBJS2} $(CC) -shared -Wl,-soname,$@ -o $@ $^ $(LDFLAGS) $(CCS_LDFLAGS) ${TARGET3}: ${OBJS3} $(CC) -shared -Wl,-soname,$@ -o $@ $^ $(LDFLAGS) depends: $(MAKE) -C ../lib all clean: generalclean -- I'm going to make him an offer he can't refuse.