From owner-p4-projects@FreeBSD.ORG Thu Dec 7 23:52:58 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 454A316A628; Thu, 7 Dec 2006 23:52:58 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id E3EA416A612 for ; Thu, 7 Dec 2006 23:52:57 +0000 (UTC) (envelope-from mjacob@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.FreeBSD.org (Postfix) with ESMTP id E3A9643E90 for ; Thu, 7 Dec 2006 23:50:39 +0000 (GMT) (envelope-from mjacob@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id kB7NpQUW094573 for ; Thu, 7 Dec 2006 23:51:26 GMT (envelope-from mjacob@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id kB7NpQSM094564 for perforce@freebsd.org; Thu, 7 Dec 2006 23:51:26 GMT (envelope-from mjacob@freebsd.org) Date: Thu, 7 Dec 2006 23:51:26 GMT Message-Id: <200612072351.kB7NpQSM094564@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to mjacob@freebsd.org using -f From: Matt Jacob To: Perforce Change Reviews Cc: Subject: PERFORCE change 111266 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 07 Dec 2006 23:52:58 -0000 http://perforce.freebsd.org/chv.cgi?CH=111266 Change 111266 by mjacob@newisp on 2006/12/07 23:51:25 PointyHat Endian Compile Goop. Affected files ... .. //depot/projects/newisp/conf/NOTES#15 edit .. //depot/projects/newisp/conf/options#9 edit .. //depot/projects/newisp/dev/mpt/mpt.c#8 edit .. //depot/projects/newisp/dev/mpt/mpt.h#9 edit .. //depot/projects/newisp/geom/stripe/g_stripe.c#3 edit .. //depot/projects/newisp/geom/stripe/g_stripe.h#2 edit Differences ... ==== //depot/projects/newisp/conf/NOTES#15 (text+ko) ==== @@ -110,6 +110,21 @@ # options BLKDEV_IOSIZE=8192 +# +# MAXPHYS and DFLTPHYS +# +# These are the max and default 'raw' I/O block device access sizes. +# Reads and writes will be split into DFLTPHYS chunks. Some applications +# have better performance with larger raw I/O access sizes. Typically +# MAXPHYS should be twice the size of DFLTPHYS. Note that certain VM +# parameters are derived from these values and making them too large +# can make an an unbootable kernel. +# +# The defaults are 64K and 128K respectively. +options DFLTPHYS=(64*1024) +options MAXPHYS=(128*1024) + + # Options for the VM subsystem # Deprecated options supported for backwards compatibility #options PQ_NOOPT # No coloring ==== //depot/projects/newisp/conf/options#9 (text+ko) ==== @@ -535,6 +535,8 @@ # These cause changes all over the kernel BLKDEV_IOSIZE opt_global.h +MAXPHYS opt_global.h +DFLTPHYS opt_global.h BURN_BRIDGES opt_global.h DEBUG opt_global.h DEBUG_LOCKS opt_global.h ==== //depot/projects/newisp/dev/mpt/mpt.c#8 (text+ko) ==== @@ -2611,8 +2611,9 @@ mpt2host_sge_simple_union(SGE_SIMPLE_UNION *sge) { MPT_2_HOST32(sge, FlagsLength); - MPT_2_HOST64(sge, u.Address64); -}; + MPT_2_HOST32(sge, u.Address64.Low); + MPT_2_HOST32(sge, u.Address64.High); +} void mpt2host_iocfacts_reply(MSG_IOC_FACTS_REPLY *rp) @@ -2664,7 +2665,7 @@ int i; ioc2->CapabilitiesFlags = htole32(ioc2->CapabilitiesFlags); for (i = 0; i < MPI_IOC_PAGE_2_RAID_VOLUME_MAX; i++) { - MPT_2_HOST16(ioc2->RaidVolume[i].Reserved3); + MPT_2_HOST16(ioc2, RaidVolume[i].Reserved3); } } @@ -2680,14 +2681,16 @@ MPT_2_HOST32(volp, Reserved2); MPT_2_HOST32(volp, Reserved3); for (i = 0; i < MPI_RAID_VOL_PAGE_0_PHYSDISK_MAX; i++) { - MPT_2_HOST16(volpd, PhysDisk[i].Reserved); + MPT_2_HOST16(volp, PhysDisk[i].Reserved); } } void mpt2host_mpi_raid_vol_indicator(MPI_RAID_VOL_INDICATOR *vi) { - MPT_2_HOST16(vi, TotalBlocks); - MPT_2_HOST16(vi, BlocksRemaining); + MPT_2_HOST16(vi, TotalBlocks.High); + MPT_2_HOST16(vi, TotalBlocks.Low); + MPT_2_HOST16(vi, BlocksRemaining.High); + MPT_2_HOST16(vi, BlocksRemaining.Low); } #endif ==== //depot/projects/newisp/dev/mpt/mpt.h#9 (text+ko) ==== @@ -283,20 +283,20 @@ #define HOST_2_MPT32(ptr, tag) ptr->tag = htole32(ptr->tag) #define HOST_2_MPT16(ptr, tag) ptr->tag = htole16(ptr->tag) -#if _BYTE_ORDER == _LITTLE_ENDIAN +#if _BYTE_ORDER == _BIG_ENDIAN +void mpt2host_sge_simple_union(SGE_SIMPLE_UNION *); +void mpt2host_iocfacts_reply(MSG_IOC_FACTS_REPLY *); +void mpt2host_portfacts_reply(MSG_PORT_FACTS_REPLY *); +void mpt2host_config_page_ioc2(CONFIG_PAGE_IOC_2 *); +void mpt2host_config_page_raid_vol_0(CONFIG_PAGE_RAID_VOL_0 *); +void mpt2host_mpi_raid_vol_indicator(MPI_RAID_VOL_INDICATOR *); +#else #define mpt2host_sge_simple_union(x) do { ; } while (0) #define mpt2host_iocfacts_reply(x) do { ; } while (0) #define mpt2host_portfacts_reply(x) do { ; } while (0) #define mpt2host_config_page_ioc2(x) do { ; } while (0) #define mpt2host_config_page_raid_vol_0(x) do { ; } while (0) #define mpt2host_mpi_raid_vol_indicator(x) do { ; } while (0) -#else -void mpt2host_sge_simple_union(SGE_SIMPLE_UNION *); -void mpt2host_iocfacts_reply(MSG_IOC_FACTS_REPLY *); -void mpt2host_portfacts_reply(MSG_PORT_FACTS_REPLY *); -void mpt2host_config_page_ioc2(CONFIG_PAGE_IOC_2 *); -void mpt2host_config_page_raid_vol_0(CONFIG_PAGE_RAID_VOL_0 *); -void mpt2host_mpi_raid_vol_indicator(MPI_RAID_VOL_INDICATOR *); #endif /**************************** MPI Transaction State ***************************/ ==== //depot/projects/newisp/geom/stripe/g_stripe.c#3 (text+ko) ==== @@ -839,6 +839,12 @@ gp->softc = sc; sc->sc_geom = gp; sc->sc_provider = NULL; + /* + * Create a devstat entry for this stripe (always unit zero). + * Sectorsize is system block size in this case. + */ + sc->sc_devstat = devstat_new_entry(md->md_name, 0, + 512 /* XXX WHICH DEFINE? XXXX */ , DEVSTAT_ALL_SUPPORTED, DEVSTAT_TYPE_DIRECT, DEVSTAT_PRIORITY_MAX); G_STRIPE_DEBUG(0, "Device %s created (id=%u).", sc->sc_name, sc->sc_id); @@ -880,6 +886,9 @@ KASSERT(sc->sc_provider == NULL, ("Provider still exists? (device=%s)", gp->name)); free(sc->sc_disks, M_STRIPE); + if (sc->sc_devstat) { + devstat_remove_entry(sc->sc_devstat); + } free(sc, M_STRIPE); pp = LIST_FIRST(&gp->provider); ==== //depot/projects/newisp/geom/stripe/g_stripe.h#2 (text+ko) ==== @@ -67,6 +67,7 @@ } \ } while (0) +struct devstat; struct g_stripe_softc { u_int sc_type; /* provider type */ struct g_geom *sc_geom; @@ -76,6 +77,7 @@ uint16_t sc_ndisks; uint32_t sc_stripesize; uint32_t sc_stripebits; + struct devstat *sc_devstat; }; #define sc_name sc_geom->name #endif /* _KERNEL */