From owner-p4-projects@FreeBSD.ORG Sun Aug 22 05:31:18 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 088C7106567A; Sun, 22 Aug 2010 05:31:18 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BA10A1065675 for ; Sun, 22 Aug 2010 05:31:17 +0000 (UTC) (envelope-from lz@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id A6D7A8FC13 for ; Sun, 22 Aug 2010 05:31:17 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id o7M5VH8i012720 for ; Sun, 22 Aug 2010 05:31:17 GMT (envelope-from lz@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id o7M5VHFn012716 for perforce@freebsd.org; Sun, 22 Aug 2010 05:31:17 GMT (envelope-from lz@FreeBSD.org) Date: Sun, 22 Aug 2010 05:31:17 GMT Message-Id: <201008220531.o7M5VHFn012716@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to lz@FreeBSD.org using -f From: Zheng Liu To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 182714 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Aug 2010 05:31:18 -0000 http://p4web.freebsd.org/@@182714?ac=10 Change 182714 by lz@gnehzuil-freebsd on 2010/08/22 05:30:17 Recovery changelist @182462. Affected files ... .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_alloc.c#4 edit .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_balloc.c#4 edit .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_inode.c#5 edit .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_vfsops.c#12 edit .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2fs.h#9 edit .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/inode.h#7 edit Differences ... ==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_alloc.c#4 (text+ko) ==== @@ -50,7 +50,11 @@ #include #include #include +#include +/* Just for clear */ +#define phy_blk(cg, fs) (((cg) * (fs->e2fs->e2fs_fpg)) + fs->e2fs->e2fs_first_dblock) + static daddr_t ext2_alloccg(struct inode *, int, daddr_t, int); static u_long ext2_dirpref(struct inode *); static void ext2_fserr(struct m_ext2fs *, uid_t, char *); @@ -59,38 +63,520 @@ int)); static daddr_t ext2_nodealloccg(struct inode *, int, daddr_t, int); static daddr_t ext2_mapsearch(struct m_ext2fs *, char *, daddr_t); + +/* For reservation window */ +static u_long ext2_alloc_blk(struct inode *, int, struct buf *, int32_t, struct ext2_rsv_win *); +static int ext2_alloc_new_rsv(struct inode *, int, struct buf *, int32_t); +static int ext2_bpref_in_rsv(struct ext2_rsv_win *, int32_t); +static int ext2_find_rsv(struct ext2_rsv_win *, struct ext2_rsv_win *, + struct m_ext2fs *, int32_t, int); +static void ext2_remove_rsv_win(struct m_ext2fs *, struct ext2_rsv_win *); +static u_long ext2_rsvalloc(struct m_ext2fs *, struct inode *, + int, struct buf *, int32_t, int); +static daddr_t ext2_search_next_block(struct m_ext2fs *, char *, int, int); +static struct ext2_rsv_win *ext2_search_rsv(struct ext2_rsv_win_tree *, int32_t); + +RB_GENERATE(ext2_rsv_win_tree, ext2_rsv_win, rsv_link, ext2_rsv_win_cmp); + /* * Allocate a block in the file system. * - * A preference may be optionally specified. If a preference is given - * the following hierarchy is used to allocate a block: - * 1) allocate the requested block. - * 2) allocate a rotationally optimal block in the same cylinder. - * 3) allocate a block in the same cylinder group. - * 4) quadradically rehash into other cylinder groups, until an - * available block is located. - * If no block preference is given the following hierarchy is used - * to allocate a block: - * 1) allocate a block in the cylinder group that contains the - * inode for the file. - * 2) quadradically rehash into other cylinder groups, until an - * available block is located. + * By given preference: + * It checks whether inode has a reservation window and preference + * is within it. If so, it will try to allocate a free block from + * this reservation window. + * Otherwise, it traverses RB tree to find a place, which is not + * in any window. then it inserts it to RB tree and tries to allocate + * a free block again. + * If fails, it will try to allocate a free block in other cylinder + * groups without perference. + */ + +/* + * Allocate a free block. + * + * Firstly it checks whether reservation window is used. + * If it use reservation window, it will try to allocate a free + * block from the reservation window. If failed, it will traverse + * the bitmap to find a free block. + * If it not use reservation window, it will try to allocate + * a free block by bpref. If failed, it will traverse the bitmap + * to find a free block. + */ +static u_long +ext2_alloc_blk(struct inode *ip, int cg, struct buf *bp, + int32_t bpref, struct ext2_rsv_win *rp) +{ + struct m_ext2fs *fs; + struct ext2mount *ump; + int bno, start, end; + char *bbp; + + fs = ip->i_e2fs; + ump = ip->i_ump; + bbp = (char *)bp->b_data; + + if (fs->e2fs_gd[cg].ext2bgd_nbfree_lo == 0) + return (0); + + if (bpref < 0) + bpref = 0; + + /* Check whther it use reservation window */ + if (rp != NULL) { + /* + * If window's start is not in this cylinder group, + * try to allocate from the beginning of this group. + * Otherwise, try to allocate from the beginning of + * the window. + */ + if (dtog(fs, rp->rsv_start) != cg) + start = phy_blk(cg, fs); + else + start = rp->rsv_start; + + /* + * If window's end cross the end of this group, + * set end variable to the end of this group. + * Otherwise, set it to window's end. + */ + if (dtog(fs, rp->rsv_end) != cg) + end = fs->e2fs->e2fs_fpg; + else + end = rp->rsv_end; + + /* If preference block is within the window, try to allocate it. */ + if (start <= bpref && bpref <= end) { + bpref = dtogd(fs, bpref); + if (isclr(bbp, bpref)) { + rp->rsv_alloc_hit++; + bno = bpref; + goto gotit; + } + } else + bpref = dtogd(fs, rp->rsv_start); + } else { + if (dtog(fs, bpref) != cg) + bpref = 0; + if (bpref != 0) { + bpref = dtogd(fs, bpref); + if (isclr(bbp, bpref)) { + bno = bpref; + goto gotit; + } + } + } + + bno = ext2_mapsearch(fs, bbp, bpref); + if (bno < 0) + return (0); + +gotit: + setbit(bbp, (daddr_t)bno); + EXT2_LOCK(ump); + fs->e2fs->e2fs_fbcount_lo--; + fs->e2fs_gd[cg].ext2bgd_nbfree_lo--; + fs->e2fs_fmod = 1; + EXT2_UNLOCK(ump); + bdwrite(bp); + bno = phy_blk(cg, fs) + bno; + ip->i_next_alloc_goal = bno; + return (bno); +} + +/* + * Initialize reservation window per inode. + */ +void +ext2_init_rsv(struct inode *ip) +{ + struct ext2_rsv_win *rp; + + rp = malloc(sizeof(struct ext2_rsv_win), + M_EXT2NODE, M_WAITOK | M_ZERO); + + /* + * If malloc failed, we just do not use + * reservation window mechanism. + */ + if (rp == NULL) + return; + + rp->rsv_start = EXT2_RSV_NOT_ALLOCATED; + rp->rsv_end = EXT2_RSV_NOT_ALLOCATED; + + rp->rsv_goal_size = EXT2_RSV_DEFAULT_RESERVE_BLKS; + rp->rsv_alloc_hit = 0; + + ip->i_rsv = rp; +} + +/* + * Discard reservation window. + * + * It is called at following locations: + * 1. free an inode + * 2. sync inode + * 3. truncate a file + */ +void +ext2_discard_rsv(struct inode *ip) +{ + struct ext2_rsv_win *rp; + + if (ip->i_rsv == NULL) + return; + + rp = ip->i_rsv; + + /* If reservation window is empty, nothing to do */ + if (rp->rsv_end == EXT2_RSV_NOT_ALLOCATED) + return; + + EXT2_TREE_LOCK(ip->i_e2fs); + ext2_remove_rsv_win(ip->i_e2fs, rp); + EXT2_TREE_UNLOCK(ip->i_e2fs); + rp->rsv_goal_size = EXT2_RSV_DEFAULT_RESERVE_BLKS; +} + +/* + * Remove a ext2_rsv_win structure from RB tree. + */ +static void +ext2_remove_rsv_win(struct m_ext2fs *fs, struct ext2_rsv_win *rp) +{ + RB_REMOVE(ext2_rsv_win_tree, &fs->e2fs_rsv_tree, rp); + rp->rsv_start = EXT2_RSV_NOT_ALLOCATED; + rp->rsv_end = EXT2_RSV_NOT_ALLOCATED; + rp->rsv_alloc_hit = 0; +} + +/* + * Check bpref is in the reservation window. + */ +static int +ext2_bpref_in_rsv(struct ext2_rsv_win *rp, int32_t bpref) +{ + if (bpref >= 0 && (bpref < rp->rsv_start || bpref > rp->rsv_end)) + return (0); + + return (1); +} + +/* + * Search a tree node from RB tree. It includes the bpref or + * the previous one if bpref is not in any window. + */ +static struct ext2_rsv_win * +ext2_search_rsv(struct ext2_rsv_win_tree *root, int32_t start) +{ + struct ext2_rsv_win *prev, *next; + + if (RB_EMPTY(root)) + return (NULL); + + next = RB_ROOT(root); + do { + prev = next; + if (start < next->rsv_start) + next = RB_LEFT(next, rsv_link); + else if (start > next->rsv_end) + next = RB_RIGHT(next, rsv_link); + else + return (next); + } while (next != NULL); + + if (prev->rsv_start > start) { + next = RB_PREV(ext2_rsv_win_tree, root, prev); + if (next != NULL) + prev = next; + } + + return (prev); +} + +/* + * Find a reservation window by given range from start to + * the end of this cylinder group. + */ +static int +ext2_find_rsv(struct ext2_rsv_win *search, struct ext2_rsv_win *rp, + struct m_ext2fs *fs, int32_t start, int cg) +{ + struct ext2_rsv_win *rsv, *prev; + int32_t cur; + int size = rp->rsv_goal_size; + + if (search == NULL) { + rp->rsv_start = start & ~7; + rp->rsv_end = start + size - 1; + rp->rsv_alloc_hit = 0; + + RB_INSERT(ext2_rsv_win_tree, &fs->e2fs_rsv_tree, rp); + + return (0); + } + + /* + * Make the start of reservation window byte-aligned + * in order to can find a free block with bit operations + * in ext2_search_next_block() function. + */ + cur = start & ~7; + rsv = search; + prev = NULL; + + while (1) { + if (cur <= rsv->rsv_end) + cur = rsv->rsv_end + 1; + + if (dtog(fs, cur) != cg) + return (-1); + + prev = rsv; + rsv = RB_NEXT(ext2_rsv_win_tree, &fs->e2fs_rsv_tree, rsv); + + if (rsv == NULL) + break; + + if (cur + size <= rsv->rsv_start) + break; + } + + if (prev != rp && rp->rsv_end != EXT2_RSV_NOT_ALLOCATED) + ext2_remove_rsv_win(fs, rp); + + rp->rsv_start = cur; + rp->rsv_end = cur + size - 1; + rp->rsv_alloc_hit = 0; + + if (prev != rp) + RB_INSERT(ext2_rsv_win_tree, &fs->e2fs_rsv_tree, rp); + + return (0); +} + +/* + * Find a free block by given range from bpref to + * the end of this cylinder group. + */ +static daddr_t +ext2_search_next_block(struct m_ext2fs *fs, char *bbp, int bpref, int cg) +{ + daddr_t bno; + int start, loc, len, map, i; + + start = bpref / NBBY; + len = howmany(fs->e2fs->e2fs_fpg, NBBY) - start; + loc = skpc(0xff, len, &bbp[start]); + if (loc == 0) + return (-1); + + i = start + len - loc; + map = bbp[i]; + bno = i * NBBY; + for (i = 1; i < (1 << NBBY); i <<= 1, bno++) { + if ((map & i) == 0) + return (bno); + } + + return (-1); +} + +/* + * Allocate a new reservation window. + */ +static int +ext2_alloc_new_rsv(struct inode *ip, int cg, struct buf *bp, int32_t bpref) +{ + struct m_ext2fs *fs; + struct ext2_rsv_win *rp, *search; + char *bbp; + int start, size, ret; + + fs = ip->i_e2fs; + rp = ip->i_rsv; + bbp = bp->b_data; + size = rp->rsv_goal_size; + + if (bpref <= 0) + start = phy_blk(cg, fs); + else + start = bpref; + + /* Dynamically increase the size of window */ + if (rp->rsv_end != EXT2_RSV_NOT_ALLOCATED) { + if (rp->rsv_alloc_hit > + ((rp->rsv_end - rp->rsv_start + 1) / 2)) { + size = size * 2; + if (size > EXT2_RSV_MAX_RESERVE_BLKS) + size = EXT2_RSV_MAX_RESERVE_BLKS; + rp->rsv_goal_size = size; + } + } + + EXT2_TREE_LOCK(fs); + + search = ext2_search_rsv(&fs->e2fs_rsv_tree, start); + +repeat: + ret = ext2_find_rsv(search, rp, fs, start, cg); + if (ret < 0) { + if (rp->rsv_end != EXT2_RSV_NOT_ALLOCATED) + ext2_remove_rsv_win(fs, rp); + EXT2_TREE_UNLOCK(fs); + return (-1); + } + EXT2_TREE_UNLOCK(fs); + + start = dtogd(fs, rp->rsv_start); + start = ext2_search_next_block(fs, bbp, start, cg); + if (start < 0) { + EXT2_TREE_LOCK(fs); + if (rp->rsv_end != EXT2_RSV_NOT_ALLOCATED) + ext2_remove_rsv_win(fs, rp); + EXT2_TREE_UNLOCK(fs); + return (-1); + } + + start = phy_blk(cg, fs) + start; + if (start >= rp->rsv_start && start <= rp->rsv_end) + return (0); + + search = rp; + EXT2_TREE_LOCK(fs); + goto repeat; +} + +/* + * Allocate a free block from reservation window. + */ +static u_long +ext2_rsvalloc(struct m_ext2fs *fs, struct inode *ip, int cg, + struct buf *bp, int32_t bpref, int size) +{ + struct ext2_rsv_win *rp; + int ret; + + rp = ip->i_rsv; + if (rp == NULL) + return (ext2_alloc_blk(ip, cg, bp, bpref, NULL)); + + if (rp->rsv_end == EXT2_RSV_NOT_ALLOCATED || + !ext2_bpref_in_rsv(rp, bpref)) { + ret = ext2_alloc_new_rsv(ip, cg, bp, bpref); + if (ret < 0) + return (0); + } + + return (ext2_alloc_blk(ip, cg, bp, bpref, rp)); +} + +/* + * Allocate a block using reservation window in ext2 file system. * - * A preference may be optionally specified. If a preference is given - * the following hierarchy is used to allocate a block: - * 1) allocate the requested block. - * 2) allocate a rotationally optimal block in the same cylinder. - * 3) allocate a block in the same cylinder group. - * 4) quadradically rehash into other cylinder groups, until an - * available block is located. - * If no block preference is given the following hierarchy is used - * to allocate a block: - * 1) allocate a block in the cylinder group that contains the - * inode for the file. - * 2) quadradically rehash into other cylinder groups, until an - * available block is located. + * NOTE: This function will replace the ext2_alloc() function. */ +int +ext2_alloc_rsv(struct inode *ip, int32_t lbn, int32_t bpref, + int size, struct ucred *cred, int32_t *bnp) +{ + struct m_ext2fs *fs; + struct ext2mount *ump; + struct buf *bp; + int32_t bno = 0; + int i, cg, error; + + *bnp = 0; + fs = ip->i_e2fs; + ump = ip->i_ump; + mtx_assert(EXT2_MTX(ump), MA_OWNED); + + if (size == fs->e2fs_bsize && fs->e2fs->e2fs_fbcount_lo == 0) + goto nospace; + if (cred->cr_uid != 0 && + fs->e2fs->e2fs_fbcount_lo < fs->e2fs->e2fs_rbcount_lo) + goto nospace; + + if (bpref >= fs->e2fs->e2fs_bcount_lo) + bpref = 0; + if (bpref == 0) + cg = ino_to_cg(fs, ip->i_number); + else + cg = dtog(fs, bpref); + /* If cg has some free blocks, then try to allocate a free block from this cg */ + if (fs->e2fs_gd[cg].ext2bgd_nbfree_lo > 0) { + /* Read block bitmap from buffer */ + EXT2_UNLOCK(ump); + error = bread(ip->i_devvp, + fsbtodb(fs, fs->e2fs_gd[cg].ext2bgd_b_bitmap_lo), + (int)fs->e2fs_bsize, NOCRED, &bp); + if (error) { + brelse(bp); + goto ioerror; + } + + EXT2_RSV_LOCK(ip); + /* Try to allocate from reservation window */ + bno = ext2_rsvalloc(fs, ip, cg, bp, bpref, size); + EXT2_RSV_UNLOCK(ip); + if (bno > 0) + goto allocated; + + brelse(bp); + EXT2_LOCK(ump); + } + + /* Just need to try to allocate a free block from rest groups. */ + cg = (cg + 1) % fs->e2fs_gcount; + for (i = 1; i < fs->e2fs_gcount; i++) { + if (fs->e2fs_gd[cg].ext2bgd_nbfree_lo > 0) { + /* Read block bitmap from buffer */ + EXT2_UNLOCK(ump); + error = bread(ip->i_devvp, + fsbtodb(fs, fs->e2fs_gd[cg].ext2bgd_b_bitmap_lo), + (int)fs->e2fs_bsize, NOCRED, &bp); + if (error) { + brelse(bp); + goto ioerror; + } + + EXT2_RSV_LOCK(ip); + bno = ext2_rsvalloc(fs, ip, cg, bp, -1, size); + EXT2_RSV_UNLOCK(ip); + if (bno > 0) + goto allocated; + + brelse(bp); + EXT2_LOCK(ump); + } + + cg++; + if (cg == fs->e2fs_gcount) + cg = 0; + } + +allocated: + if (bno > 0) { + ip->i_blocks += btodb(fs->e2fs_bsize); + ip->i_flag |= IN_CHANGE | IN_UPDATE; + *bnp = bno; + return (0); + } + +nospace: + EXT2_UNLOCK(ump); + ext2_fserr(fs, cred->cr_uid, "file system full"); + uprintf("\n%s: write failed, file system is full\n", fs->e2fs_fsmnt); + return (ENOSPC); + +ioerror: + ext2_fserr(fs, cred->cr_uid, "file system IO error"); + uprintf("\n%s: write failed, file system IO error\n", fs->e2fs_fsmnt); + return EIO; +} + int ext2_alloc(ip, lbn, bpref, size, cred, bnp) struct inode *ip; @@ -146,7 +632,7 @@ * Reallocate a sequence of blocks into a contiguous sequence of blocks. * * The vnode and an array of buffer pointers for a range of sequential - * logical blocks to be made contiguous is given. The allocator attempts + * logicar blocks to be made contiguous is given. The allocator attempts * to find a range of sequential blocks starting as close as possible to * an fs_rotdelay offset from the end of the allocation for the logical * block immediately preceding the current range. If successful, the @@ -923,9 +1409,11 @@ start = 0; loc = skpc(0xff, len, &bbp[start]); if (loc == 0) { - printf("start = %d, len = %d, fs = %s\n", - start, len, fs->e2fs_fsmnt); - panic("ext2fs_alloccg: map corrupted"); + /* XXX: just for reservation window */ + return -1; + /*printf("start = %d, len = %d, fs = %s\n",*/ + /*start, len, fs->e2fs_fsmnt);*/ + /*panic("ext2fs_alloccg: map corrupted");*/ /* NOTREACHED */ } } ==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_balloc.c#4 (text+ko) ==== @@ -49,6 +49,7 @@ #include #include #include +#include /* * Balloc defines the structure of file system storage * by allocating the physical blocks on a device given @@ -136,9 +137,14 @@ else nsize = fs->e2fs_bsize; EXT2_LOCK(ump); +/* error = ext2_alloc(ip, lbn, ext2_blkpref(ip, lbn, (int)lbn, &ip->i_db[0], 0), nsize, cred, &newb); +*/ + error = ext2_alloc_rsv(ip, lbn, + ext2_blkpref(ip, lbn, (int)lbn, &ip->i_db[0], 0), + nsize, cred, &newb); if (error) return (error); bp = getblk(vp, lbn, nsize, 0, 0, 0); @@ -170,9 +176,14 @@ EXT2_LOCK(ump); pref = ext2_blkpref(ip, lbn, indirs[0].in_off + EXT2_NDIR_BLOCKS, &ip->i_db[0], 0); +/* if ((error = ext2_alloc(ip, lbn, pref, (int)fs->e2fs_bsize, cred, &newb))) return (error); +*/ + if ((error = ext2_alloc_rsv(ip, lbn, pref, + (int)fs->e2fs_bsize, cred, &newb))) + return (error); nb = newb; bp = getblk(vp, indirs[1].in_lbn, fs->e2fs_bsize, 0, 0, 0); bp->b_blkno = fsbtodb(fs, newb); @@ -211,7 +222,10 @@ if (pref == 0) pref = ext2_blkpref(ip, lbn, indirs[i].in_off, bap, bp->b_lblkno); +/* error = ext2_alloc(ip, lbn, pref, (int)fs->e2fs_bsize, cred, &newb); +*/ + error = ext2_alloc_rsv(ip, lbn, pref, (int)fs->e2fs_bsize, cred, &newb); if (error) { brelse(bp); return (error); @@ -250,11 +264,18 @@ EXT2_LOCK(ump); pref = ext2_blkpref(ip, lbn, indirs[i].in_off, &bap[0], bp->b_lblkno); +/* if ((error = ext2_alloc(ip, lbn, pref, (int)fs->e2fs_bsize, cred, &newb)) != 0) { brelse(bp); return (error); } +*/ + if ((error = ext2_alloc_rsv(ip, lbn, pref, + (int)fs->e2fs_bsize, cred, &newb)) != 0) { + brelse(bp); + return (error); + } nb = newb; nbp = getblk(vp, lbn, fs->e2fs_bsize, 0, 0, 0); nbp->b_blkno = fsbtodb(fs, nb); ==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_inode.c#5 (text+ko) ==== @@ -52,6 +52,7 @@ #include #include #include +#include static int ext2_indirtrunc(struct inode *, int32_t, int32_t, int32_t, int, long *); @@ -154,6 +155,10 @@ fs = oip->i_e2fs; osize = oip->i_size; + EXT2_RSV_LOCK(oip); + ext2_discard_rsv(oip); + EXT2_RSV_UNLOCK(oip); + /* * Lengthen the size of the file. We must ensure that the * last byte of the file is allocated. Since the smallest @@ -485,6 +490,10 @@ if (prtactive && vrefcnt(vp) != 0) vprint("ext2_inactive: pushing active", vp); + EXT2_RSV_LOCK(ip); + ext2_discard_rsv(ip); + EXT2_RSV_UNLOCK(ip); + /* * Ignore inodes related to stale file handles. */ @@ -533,6 +542,14 @@ } vfs_hash_remove(vp); + EXT2_RSV_LOCK(ip); + if (ip->i_rsv != NULL) { + free(ip->i_rsv, M_EXT2NODE); + ip->i_rsv = NULL; + } + EXT2_RSV_UNLOCK(ip); + mtx_destroy(&ip->i_rsv_lock); + mtx_destroy(&ip->i_ext_lock); free(vp->v_data, M_EXT2NODE); ==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_vfsops.c#12 (text+ko) ==== @@ -98,8 +98,6 @@ int ronly); static int compute_sb_data(struct vnode * devvp, struct ext2fs * es, struct m_ext2fs * fs); -static int ext4_init_fg(struct m_ext2fs *); -static int find_most_set_bit(int64_t n); static const char *ext2_opts[] = { "from", "export", "acls", "noexec", "noatime", "union", "suiddir", "multilabel", "nosymfollow", @@ -355,7 +353,6 @@ fs->e2fs_ipb = fs->e2fs_bsize / EXT2_INODE_SIZE(fs); fs->e2fs_itpg = fs->e2fs_ipg /fs->e2fs_ipb; fs->e2fs_descpb = fs->e2fs_bsize / sizeof (struct ext2_gd); - fs->e2fs_descpbbits = find_most_set_bit(fs->e2fs_descpb); /* s_resuid / s_resgid ? */ fs->e2fs_gcount = (((int64_t)(es->e2fs_bcount_hi) << 32 | es->e2fs_bcount_lo) - es->e2fs_first_dblock + EXT2_BLOCKS_PER_GROUP(fs) - 1) / @@ -392,9 +389,6 @@ bp = NULL; } - /* initialize flex groups */ - ext4_init_fg(fs); - fs->e2fs_total_dir = 0; for (i=0; i < fs->e2fs_gcount; i++){ fs->e2fs_total_dir += (fs->e2fs_gd[i].ext2bgd_ndirs_lo); @@ -427,71 +421,6 @@ } /* - * Initialize flex groups data structure. - */ -static int -ext4_init_fg(struct m_ext2fs *fs) -{ - struct ext2fs *es = fs->e2fs; - int i, gpf = 0; - unsigned int fgcount, fg; - long nifree, nbfree, ndirs; - - fs->e2fs_log_gpf = es->e2fs_log_gpf; - gpf = 1 << fs->e2fs_log_gpf; - - if (gpf < 2) { - fs->e2fs_log_gpf = 0; - return (0); - } - - fgcount = ((fs->e2fs_gcount + gpf - 1) + - ((es->e2fs_reserved_ngdb + 1) << fs->e2fs_descpbbits)) / gpf; - - fs->e2fs_fg = malloc(fgcount * sizeof(struct ext4_flex_groups), - M_EXT2MNT, M_WAITOK | M_ZERO); - - for (i = 0; i < fs->e2fs_gcount; i++) { - nifree = 0; - nbfree = 0; - ndirs = 0; - fg = i >> fs->e2fs_log_gpf; - - /* XXX: need to support 64 bits. */ - nifree = fs->e2fs_gd[i].ext2bgd_nifree_lo; - nbfree = fs->e2fs_gd[i].ext2bgd_nbfree_lo; - ndirs = fs->e2fs_gd[i].ext2bgd_ndirs_lo; - - atomic_add_long(&fs->e2fs_fg[fg].e2fg_nifree, nifree); - atomic_add_long(&fs->e2fs_fg[fg].e2fg_nbfree, nbfree); - atomic_add_long(&fs->e2fs_fg[fg].e2fg_ndirs, ndirs); - } - - return (0); -} - -/* - * Find most significant set bit. - * - * TODO: Maybe it need to rewrite by assembly language for - * improving the performance. - */ -static int -find_most_set_bit(int64_t n) -{ - int64_t num, i; - unsigned int pos, res = 0; - - for (num = 1; num <= n; num++) { - for (i = (num >> 1), pos = 0; i != 0; pos++) - i >>= 1; - res = pos; - } - - return res; -} - -/* * Reload all incore data for a filesystem (used after running fsck on * the root filesystem and finding things to fix). The filesystem must * be mounted read-only. @@ -775,7 +704,6 @@ g_topology_unlock(); PICKUP_GIANT(); vrele(ump->um_devvp); - free(fs->e2fs_fg, M_EXT2MNT); free(fs->e2fs_gd, M_EXT2MNT); free(fs->e2fs_contigdirs, M_EXT2MNT); free(fs->e2fs, M_EXT2MNT); ==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2fs.h#9 (text+ko) ==== @@ -92,15 +92,6 @@ */ #define MAXMNTLEN 512 -/* ext4 flex block group data structure */ -struct ext4_flex_groups { - long e2fg_nifree; - long e2fg_nbfree; - long e2fg_ndirs; -}; - -#define EXT4_FLEX_ALLOC_DIR_SIZE 4 - /* * Super block for an ext2fs file system. */ @@ -214,10 +205,6 @@ off_t e2fs_maxfilesize; struct ext2_gd *e2fs_gd; /* Group Descriptors */ - u_int8_t e2fs_log_gpf; /* FLEX_BG group size */ - int e2fs_descpbbits; - struct ext4_flex_groups *e2fs_fg; - u_int16_t e2fs_min_extra_isize; /* all inodes have at least some bytes */ u_int16_t e2fs_want_extra_isize; /* new inodes should reserve some bytes */ }; ==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/inode.h#7 (text+ko) ==== @@ -43,6 +43,7 @@ #include #include +#include #include #define ROOTINO ((ino_t)2) @@ -105,6 +106,10 @@ u_int32_t i_uid; /* File owner. */ u_int32_t i_gid; /* File group. */ + /* reservation window */ + struct mtx i_rsv_lock; /* Protects i_rsv */ + struct ext2_rsv_win *i_rsv; /* Reservation window */ + /* ext4 extents support */ struct mtx i_ext_lock; /* this lock only is required in read/write mode but we still use it in read-only mode. */ From owner-p4-projects@FreeBSD.ORG Sun Aug 22 05:40:05 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AAC6C10656A8; Sun, 22 Aug 2010 05:40:05 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6CBAA1065675 for ; Sun, 22 Aug 2010 05:40:05 +0000 (UTC) (envelope-from lz@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 411E38FC0A for ; Sun, 22 Aug 2010 05:40:05 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id o7M5e5FU012896 for ; Sun, 22 Aug 2010 05:40:05 GMT (envelope-from lz@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id o7M5e51E012893 for perforce@freebsd.org; Sun, 22 Aug 2010 05:40:05 GMT (envelope-from lz@FreeBSD.org) Date: Sun, 22 Aug 2010 05:40:05 GMT Message-Id: <201008220540.o7M5e51E012893@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to lz@FreeBSD.org using -f From: Zheng Liu To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 182716 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Aug 2010 05:40:05 -0000 http://p4web.freebsd.org/@@182716?ac=10 Change 182716 by lz@gnehzuil-freebsd on 2010/08/22 05:40:04 Recovery ext2_rsv_win.h file. Affected files ... .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_rsv_win.h#6 add Differences ... From owner-p4-projects@FreeBSD.ORG Sun Aug 22 05:49:58 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E7EA910656A4; Sun, 22 Aug 2010 05:49:57 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A66261065697 for ; Sun, 22 Aug 2010 05:49:57 +0000 (UTC) (envelope-from lz@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 94DA78FC08 for ; Sun, 22 Aug 2010 05:49:57 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id o7M5nvN4014945 for ; Sun, 22 Aug 2010 05:49:57 GMT (envelope-from lz@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id o7M5nvwD014942 for perforce@freebsd.org; Sun, 22 Aug 2010 05:49:57 GMT (envelope-from lz@FreeBSD.org) Date: Sun, 22 Aug 2010 05:49:57 GMT Message-Id: <201008220549.o7M5nvwD014942@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to lz@FreeBSD.org using -f From: Zheng Liu To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 182718 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Aug 2010 05:49:58 -0000 http://p4web.freebsd.org/@@182718?ac=10 Change 182718 by lz@gnehzuil-freebsd on 2010/08/22 05:49:07 Recovery ext2fs.h file. Affected files ... .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2fs.h#10 edit Differences ... ==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2fs.h#10 (text+ko) ==== @@ -39,6 +39,7 @@ #include #include +#include #include /* @@ -92,6 +93,15 @@ */ #define MAXMNTLEN 512 +/* ext4 flex block group data structure */ +struct ext4_flex_groups { + long e2fg_nifree; + long e2fg_nbfree; + long e2fg_ndirs; +}; + +#define EXT4_FLEX_ALLOC_DIR_SIZE 4 + /* * Super block for an ext2fs file system. */ @@ -205,6 +215,13 @@ off_t e2fs_maxfilesize; struct ext2_gd *e2fs_gd; /* Group Descriptors */ + struct mtx e2fs_rsv_lock; /* Protect reservation window RB tree */ + struct ext2_rsv_win_tree e2fs_rsv_tree; /* Reservation window index */ + + u_int8_t e2fs_log_gpf; /* FLEX_BG group size */ + int e2fs_descpbbits; + struct ext4_flex_groups *e2fs_fg; + u_int16_t e2fs_min_extra_isize; /* all inodes have at least some bytes */ u_int16_t e2fs_want_extra_isize; /* new inodes should reserve some bytes */ }; @@ -252,8 +269,7 @@ #define EXT4F_INCOMPAT_EXTENTS 0x0040 #define EXT4F_INCOMPAT_64BIT 0x0080 #define EXT4F_INCOMPAT_MMP 0x0100 -#define EXT4F_INCOMPAT_FLEX_BG 0x0200 -#define EXT4F_INCOMPAT_EAINODE 0x0400 +#define EXT4F_INCOMPAT_FLEX_BG 0X0200 /* * Features supported in this implementation From owner-p4-projects@FreeBSD.ORG Sun Aug 22 06:06:25 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8BBA810656AA; Sun, 22 Aug 2010 06:06:25 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4DE1E1065697 for ; Sun, 22 Aug 2010 06:06:25 +0000 (UTC) (envelope-from lz@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 336378FC13 for ; Sun, 22 Aug 2010 06:06:25 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id o7M66PCl018836 for ; Sun, 22 Aug 2010 06:06:25 GMT (envelope-from lz@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id o7M66OW7018833 for perforce@freebsd.org; Sun, 22 Aug 2010 06:06:24 GMT (envelope-from lz@FreeBSD.org) Date: Sun, 22 Aug 2010 06:06:24 GMT Message-Id: <201008220606.o7M66OW7018833@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to lz@FreeBSD.org using -f From: Zheng Liu To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 182719 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Aug 2010 06:06:25 -0000 http://p4web.freebsd.org/@@182719?ac=10 Change 182719 by lz@gnehzuil-freebsd on 2010/08/22 06:06:22 Make ext4fs can work. Affected files ... .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_alloc.c#5 edit .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_balloc.c#5 edit .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_bmap.c#5 edit .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_dinode.h#4 edit .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_dir.h#3 edit .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_extents.c#9 edit .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_extents.h#7 edit .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_extern.h#4 edit .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_htree.c#2 edit .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_htree.h#3 edit .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_inode.c#6 edit .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_inode_cnv.c#7 edit .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_lookup.c#6 edit .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_mount.h#3 edit .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_readwrite.c#10 edit .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_rsv_win.h#7 edit .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_subr.c#6 edit .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_vfsops.c#13 edit .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_vnops.c#4 edit .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2fs.h#11 edit .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/fs.h#3 edit .. //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/inode.h#8 edit Differences ... ==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_alloc.c#5 (text+ko) ==== ==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_balloc.c#5 (text+ko) ==== ==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_bmap.c#5 (text+ko) ==== ==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_dinode.h#4 (text+ko) ==== ==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_dir.h#3 (text+ko) ==== ==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_extents.c#9 (text+ko) ==== ==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_extents.h#7 (text+ko) ==== ==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_extern.h#4 (text+ko) ==== ==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_htree.c#2 (text+ko) ==== ==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_htree.h#3 (text+ko) ==== ==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_inode.c#6 (text+ko) ==== ==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_inode_cnv.c#7 (text+ko) ==== ==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_lookup.c#6 (text+ko) ==== ==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_mount.h#3 (text+ko) ==== ==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_readwrite.c#10 (text+ko) ==== ==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_rsv_win.h#7 (text+ko) ==== ==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_subr.c#6 (text+ko) ==== ==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_vfsops.c#13 (text+ko) ==== @@ -98,6 +98,8 @@ int ronly); static int compute_sb_data(struct vnode * devvp, struct ext2fs * es, struct m_ext2fs * fs); +static int ext4_init_fg(struct m_ext2fs *); +static int find_most_set_bit(int64_t n); static const char *ext2_opts[] = { "from", "export", "acls", "noexec", "noatime", "union", "suiddir", "multilabel", "nosymfollow", @@ -353,6 +355,7 @@ fs->e2fs_ipb = fs->e2fs_bsize / EXT2_INODE_SIZE(fs); fs->e2fs_itpg = fs->e2fs_ipg /fs->e2fs_ipb; fs->e2fs_descpb = fs->e2fs_bsize / sizeof (struct ext2_gd); + fs->e2fs_descpbbits = find_most_set_bit(fs->e2fs_descpb); /* s_resuid / s_resgid ? */ fs->e2fs_gcount = (((int64_t)(es->e2fs_bcount_hi) << 32 | es->e2fs_bcount_lo) - es->e2fs_first_dblock + EXT2_BLOCKS_PER_GROUP(fs) - 1) / @@ -389,6 +392,9 @@ bp = NULL; } + /* initialize flex groups */ + ext4_init_fg(fs); + fs->e2fs_total_dir = 0; for (i=0; i < fs->e2fs_gcount; i++){ fs->e2fs_total_dir += (fs->e2fs_gd[i].ext2bgd_ndirs_lo); @@ -414,13 +420,81 @@ } if (E2FS_REV0_INODE_SIZE + fs->e2fs_want_extra_isize > - fs->e2fs_isize) + fs->e2fs_isize) { printf("EXT2-fs: no space for extra inode.\n"); + return (EIO); + } + return (0); } /* + * Initialize flex groups data structure. + */ +static int +ext4_init_fg(struct m_ext2fs *fs) +{ + struct ext2fs *es = fs->e2fs; + int i, gpf = 0; + unsigned int fgcount, fg; + long nifree, nbfree, ndirs; + + fs->e2fs_log_gpf = es->e2fs_log_gpf; + gpf = 1 << fs->e2fs_log_gpf; + + if (gpf < 2) { + fs->e2fs_log_gpf = 0; + return (0); + } + + fgcount = ((fs->e2fs_gcount + gpf - 1) + + ((es->e2fs_reserved_ngdb + 1) << fs->e2fs_descpbbits)) / gpf; + + fs->e2fs_fg = malloc(fgcount * sizeof(struct ext4_flex_groups), + M_EXT2MNT, M_WAITOK | M_ZERO); + + for (i = 0; i < fs->e2fs_gcount; i++) { + nifree = 0; + nbfree = 0; + ndirs = 0; + fg = i >> fs->e2fs_log_gpf; + + /* XXX: need to support 64 bits. */ + nifree = fs->e2fs_gd[i].ext2bgd_nifree_lo; + nbfree = fs->e2fs_gd[i].ext2bgd_nbfree_lo; + ndirs = fs->e2fs_gd[i].ext2bgd_ndirs_lo; + + atomic_add_long(&fs->e2fs_fg[fg].e2fg_nifree, nifree); + atomic_add_long(&fs->e2fs_fg[fg].e2fg_nbfree, nbfree); + atomic_add_long(&fs->e2fs_fg[fg].e2fg_ndirs, ndirs); + } + + return (0); +} + +/* + * Find most significant set bit. + * + * TODO: Maybe it need to rewrite by assembly language for + * improving the performance. + */ +static int +find_most_set_bit(int64_t n) +{ + int64_t num, i; + unsigned int pos, res = 0; + + for (num = 1; num <= n; num++) { + for (i = (num >> 1), pos = 0; i != 0; pos++) + i >>= 1; + res = pos; + } + + return res; +} + +/* * Reload all incore data for a filesystem (used after running fsck on * the root filesystem and finding things to fix). The filesystem must * be mounted read-only. @@ -605,6 +679,12 @@ if ((error = compute_sb_data(devvp, ump->um_e2fs->e2fs, ump->um_e2fs))) goto out; + /* Initial reservation window index and lock */ + bzero(&ump->um_e2fs->e2fs_rsv_lock, sizeof(struct mtx)); + mtx_init(&ump->um_e2fs->e2fs_rsv_lock, + "rsv tree lock", NULL, MTX_DEF); + RB_INIT(&ump->um_e2fs->e2fs_rsv_tree); + brelse(bp); bp = NULL; fs = ump->um_e2fs; @@ -704,6 +784,8 @@ g_topology_unlock(); PICKUP_GIANT(); vrele(ump->um_devvp); + mtx_destroy(&fs->e2fs_rsv_lock); + free(fs->e2fs_fg, M_EXT2MNT); free(fs->e2fs_gd, M_EXT2MNT); free(fs->e2fs_contigdirs, M_EXT2MNT); free(fs->e2fs, M_EXT2MNT); @@ -881,7 +963,7 @@ struct cdev *dev; struct thread *td; int error; - int i, used_blocks; + /*int i, used_blocks;*/ td = curthread; error = vfs_hash_get(mp, ino, flags, td, vpp, NULL, NULL); @@ -947,6 +1029,15 @@ ip->i_prealloc_count = 0; ip->i_prealloc_block = 0; + /* initialize rsv lock and rsv data structure */ + bzero(&ip->i_rsv_lock, sizeof(struct mtx)); + mtx_init(&ip->i_rsv_lock, "inode rsv lock", NULL, MTX_DEF); + EXT2_RSV_LOCK(ip); + ip->i_rsv = NULL; + if (ip->i_rsv == NULL) + ext2_init_rsv(ip); + EXT2_RSV_UNLOCK(ip); + /* initialize ext lock */ bzero(&ip->i_ext_lock, sizeof(struct mtx)); mtx_init(&ip->i_ext_lock, "inode ext lock", NULL, MTX_DEF); @@ -961,15 +1052,16 @@ * NOTE: When ext4 file system use extents, we don't zero * block pointers. */ - if (!(fs->e2fs->e2fs_features_incompat & EXT4F_INCOMPAT_EXTENTS)) { - if (S_ISDIR(ip->i_mode) || S_ISREG(ip->i_mode)) { - used_blocks = (ip->i_size+fs->e2fs_bsize-1) / fs->e2fs_bsize; - for(i = used_blocks; i < EXT2_NDIR_BLOCKS; i++) - ip->i_db[i] = 0; - } - } +#if 0 + if(S_ISDIR(ip->i_mode) || S_ISREG(ip->i_mode)) { + used_blocks = (ip->i_size+fs->e2fs_bsize-1) / fs->e2fs_bsize; + for(i = used_blocks; i < EXT2_NDIR_BLOCKS; i++) + ip->i_db[i] = 0; + } +#endif + - /*ext2_print_inode(ip);*/ + ext2_print_inode(ip); bqrelse(bp); ==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2_vnops.c#4 (text+ko) ==== ==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/ext2fs.h#11 (text+ko) ==== ==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/fs.h#3 (text+ko) ==== ==== //depot/projects/soc2010/ext4fs/src/sys/fs/ext2fs/inode.h#8 (text+ko) ==== From owner-p4-projects@FreeBSD.ORG Sun Aug 22 11:40:58 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 86BD310656AA; Sun, 22 Aug 2010 11:40:58 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 48D3310656A5 for ; Sun, 22 Aug 2010 11:40:58 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 342288FC08 for ; Sun, 22 Aug 2010 11:40:58 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id o7MBewnw091673 for ; Sun, 22 Aug 2010 11:40:58 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id o7MBevRt091656 for perforce@freebsd.org; Sun, 22 Aug 2010 11:40:57 GMT (envelope-from rene@FreeBSD.org) Date: Sun, 22 Aug 2010 11:40:57 GMT Message-Id: <201008221140.o7MBevRt091656@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 182744 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Aug 2010 11:40:58 -0000 http://p4web.freebsd.org/@@182744?ac=10 Change 182744 by rene@rene_acer on 2010/08/22 11:40:36 IFC Affected files ... .. //depot/projects/docproj_nl/en_US.ISO8859-1/articles/contributors/contrib.additional.sgml#68 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/faq/book.sgml#30 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/Makefile#5 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/advanced-networking/chapter.sgml#23 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/bibliography/chapter.sgml#5 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/disks/chapter.sgml#11 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/install/chapter.sgml#9 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/multimedia/chapter.sgml#7 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml#9 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/x11/chapter.sgml#15 integrate .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/porters-handbook/book.sgml#86 integrate .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/articles/problem-reports/article.sgml#18 integrate .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/bibliography/chapter.sgml#12 integrate .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/config/chapter.sgml#18 integrate .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/disks/chapter.sgml#18 integrate .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/firewalls/chapter.sgml#22 integrate .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/geom/chapter.sgml#14 integrate .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/install/chapter.sgml#15 integrate .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/introduction/chapter.sgml#26 integrate .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/mirrors/chapter.sgml#55 integrate .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/network-servers/chapter.sgml#34 integrate .. //depot/projects/docproj_nl/share/images/books/handbook/install/adduser2.scr#2 integrate .. //depot/projects/docproj_nl/share/images/books/handbook/install/config-keymap.scr#1 branch .. //depot/projects/docproj_nl/share/sgml/freebsd-html.dsl#4 integrate .. //depot/projects/docproj_nl/www/en/donations/donors.sgml#33 integrate .. //depot/projects/docproj_nl/www/en/donations/wantlist.sgml#21 integrate .. //depot/projects/docproj_nl/www/en/security/security.sgml#14 integrate .. //depot/projects/docproj_nl/www/share/sgml/commercial.consult.xml#26 integrate .. //depot/projects/docproj_nl/www/share/sgml/commercial.software.xml#7 integrate Differences ... ==== //depot/projects/docproj_nl/en_US.ISO8859-1/articles/contributors/contrib.additional.sgml#68 (text+ko) ==== @@ -1,4 +1,4 @@ - + @@ -4115,6 +4115,7 @@ export DESTDIR=/data/misc/diskless mkdir -p ${DESTDIR} cd /usr/src; make buildworld && make buildkernel +make installworld && make installkernel cd /usr/src/etc; make distribution Once done, you may need to customize your ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/bibliography/chapter.sgml#5 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -613,8 +613,7 @@ Simon Garfinkel, Daniel Weise, Steven Strassmann. The UNIX-HATERS Handbook. IDG Books Worldwide, Inc., 1994. ISBN 1-56884-203-1. Out of print, but available - online. + url="http://www.simson.net/ref/ugh.pdf">online. ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/disks/chapter.sgml#11 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -2664,7 +2664,7 @@ size during the backup, files that are created/deleted during the backup and more. She presented the results at LISA V in Oct. 1991. See torture-testing + url="http://www.coredumps.de/doc/dump/zwicky/testdump.doc.html ">torture-testing Backup and Archive Programs. @@ -2686,187 +2686,36 @@ two copies of each. - fix-it floppies - Second, determine that the boot and fix-it floppies - (boot.flp and fixit.flp) - have all your devices. The easiest way to check is to reboot your - machine with the boot floppy in the floppy drive and check the boot - messages. If all your devices are listed and functional, skip on to - step three. - - Otherwise, you have to create two custom bootable - floppies which have a kernel that can mount all of your disks - and access your tape drive. These floppies must contain: - fdisk, bsdlabel, - newfs, mount, and - whichever backup program you use. These programs must be - statically linked. If you use dump, the - floppy must contain restore. + livefs CD + Second, burn a livefs CDROM. This CDROM + contains support for booting into a &os; + livefs rescue mode allowing the user to + perform many tasks like running &man.dump.8;, + &man.restore.8;, &man.fdisk.8;, &man.bsdlabel.8;, + &man.newfs.8;, &man.mount.8;, and more. Livefs CD image for + &os;/&arch.i386; &rel.current;-RELEASE is available + from . Third, create backup tapes regularly. Any changes that you make after your last backup may be irretrievably lost. Write-protect the backup tapes. - Fourth, test the floppies (either boot.flp - and fixit.flp or the two custom bootable - floppies you made in step two.) and backup tapes. Make notes of the - procedure. Store these notes with the bootable floppy, the + Fourth, test the livefs CDROM + you made in step two and backup tapes. Make notes of the + procedure. Store these notes with the CDROM, the printouts and the backup tapes. You will be so distraught when restoring that the notes may prevent you from destroying your backup tapes (How? In place of tar xvf /dev/sa0, you might accidentally type tar cvf /dev/sa0 and over-write your backup tape). - For an added measure of security, make bootable floppies and two + For an added measure of security, make livefs CDROM and two backup tapes each time. Store one of each at a remote location. A remote location is NOT the basement of the same office building. A number of firms in the World Trade Center learned this lesson the hard way. A remote location should be physically separated from your computers and disk drives by a significant distance. - - - A Script for Creating a Bootable Floppy - - /mnt/sbin/init -gzip -c -best /sbin/fsck > /mnt/sbin/fsck -gzip -c -best /sbin/mount > /mnt/sbin/mount -gzip -c -best /sbin/halt > /mnt/sbin/halt -gzip -c -best /sbin/restore > /mnt/sbin/restore - -gzip -c -best /bin/sh > /mnt/bin/sh -gzip -c -best /bin/sync > /mnt/bin/sync - -cp /root/.profile /mnt/root - -chmod 500 /mnt/sbin/init -chmod 555 /mnt/sbin/fsck /mnt/sbin/mount /mnt/sbin/halt -chmod 555 /mnt/bin/sh /mnt/bin/sync -chmod 6555 /mnt/sbin/restore - -# -# create minimum file system table -# -cat > /mnt/etc/fstab < /mnt/etc/passwd < /mnt/etc/master.passwd < - - - @@ -2879,23 +2728,16 @@ If the hardware has been damaged, the parts should be replaced before attempting to use the computer. - If your hardware is okay, check your floppies. If you are using - a custom boot floppy, boot single-user (type -s - at the boot: prompt). Skip the following - paragraph. - - If you are using the boot.flp and - fixit.flp floppies, keep reading. Insert the - boot.flp floppy in the first floppy drive and + If your hardware is okay, insert the + livefs CDROM in the CDROM drive and boot the computer. The original install menu will be displayed on - the screen. Select the Fixit--Repair mode with CDROM or - floppy. option. Insert the - fixit.flp when prompted. + the screen. Select the correct country, then choose + Fixit -- Repair mode with CDROM/DVD/floppy or + start a shell. option and select the + CDROM/DVD -- Use the live filesystem + CDROM/DVD item. The tool restore and the other programs that you need are - located in /mnt2/rescue - (/mnt2/stand for - &os; versions older than 5.2). - + located in /mnt2/rescue. Recover each file system separately. @@ -2913,7 +2755,7 @@ bsdlabel was damaged, use bsdlabel to re-partition and label the disk to match the label that you printed and saved. Use newfs to re-create the file systems. Re-mount the root - partition of the floppy read-write (mount -u -o rw + partition of the disk read-write (mount -u -o rw /mnt). Use your backup program and backup tapes to recover the data for this file system (e.g. restore vrf /dev/sa0). Unmount the file system (e.g. umount ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/install/chapter.sgml#9 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -75,7 +75,7 @@ In general, these installation instructions are written for &i386; (PC compatible) architecture computers. Where applicable, instructions specific to other - platforms (for example, Alpha) will be listed. Although this + platforms will be listed. Although this guide is kept as up to date as possible, you may find minor differences between the installer and what is shown here. It is suggested that you use this chapter as a general guide rather @@ -101,7 +101,7 @@ Depending on the method you choose to install &os;, you may also need a floppy drive, a supported CDROM drive, and in some case a network adapter. This will be covered by the . + linkend="install-boot-media">. &os;/&arch.i386; and &os;/&arch.pc98; @@ -123,32 +123,14 @@ Alpha - To install &os;/&arch.alpha;, you will need a supported - platform (see ) - and a dedicated disk for &os;. It is not possible to share - a disk with another operating system at this time. This - disk will need to be attached to a SCSI controller which is - supported by the SRM firmware or an IDE disk assuming the - SRM in your machine supports booting from IDE disks. - - ARC - Alpha BIOS - SRM - - You will need the SRM console firmware for your - platform. In some cases, it is possible to switch between - AlphaBIOS (or ARC) firmware and SRM. In others it will be - necessary to download new firmware from the vendor's Web - site. - - Support for the Alpha was removed beginning with &os; 7.0. The &os; 6.X series of releases is the last containing support for this - architecture. - - + architecture. Please check the Release + Information page of the &os; web site for more + information. @@ -402,16 +384,7 @@ You can use a commercial tool such as &partitionmagic;, or a free tool such as GParted, to resize your partitions and make space for - FreeBSD. The tools directory on the CDROM - contains two free software tools which can carry out this task, namely - FIPS and - PResizer. Documentation for both - of these is available in the same directory. - FIPS, - PResizer, and - &partitionmagic; can resize - FAT16 and FAT32 - partitions — used in &ms-dos; through &windows; ME. Both + &os;. Both &partitionmagic; and GParted are known to work on NTFS. GParted @@ -473,58 +446,6 @@ - - - Disk Layouts for the Alpha - - Alpha - - You will need a dedicated disk for FreeBSD on the - Alpha. It is not possible to share a disk with another - operating system at this time. Depending on the specific - Alpha machine you have, this disk can either be a SCSI disk - or an IDE disk, as long as your machine is capable of - booting from it. - - Following the conventions of the Digital / Compaq - manuals all SRM input is shown in uppercase. SRM is case - insensitive. - - To find the names and types of disks in your machine, use - the SHOW DEVICE command from the SRM - console prompt: - - >>>SHOW DEVICE -dka0.0.0.4.0 DKA0 TOSHIBA CD-ROM XM-57 3476 -dkc0.0.0.1009.0 DKC0 RZ1BB-BS 0658 -dkc100.1.0.1009.0 DKC100 SEAGATE ST34501W 0015 -dva0.0.0.0.1 DVA0 -ewa0.0.0.3.0 EWA0 00-00-F8-75-6D-01 -pkc0.7.0.1009.0 PKC0 SCSI Bus ID 7 5.27 -pqa0.0.0.4.0 PQA0 PCI EIDE -pqb0.0.1.4.0 PQB0 PCI EIDE - - This example is from a Digital Personal Workstation - 433au and shows three disks attached to the machine. The - first is a CDROM drive called DKA0 and - the other two are disks and are called - DKC0 and - DKC100 respectively. - - Disks with names of the form DKx - are SCSI disks. For example DKA100 - refers to a SCSI disk with SCSI target ID 1 on the first SCSI bus (A), - whereas DKC300 refers to a SCSI disk - with SCSI ID 3 on the third SCSI bus (C). Devicename - PKx refers to the SCSI host bus adapter. As - seen in the SHOW DEVICE output SCSI - CDROM drives are treated as any other SCSI hard disk drive. - - IDE disks have names similar to DQx, - while PQx is the associated IDE - controller. - - @@ -665,16 +586,16 @@ If you have purchased FreeBSD on CD or DVD then you already have everything you need, and should proceed to the next section - (). + (). If you have not obtained the FreeBSD installation files you should skip ahead to which explains how to prepare to install FreeBSD from any of the above. After reading that section, you should come back here, and read on to - . + . - + Prepare the Boot Media The FreeBSD installation process is started by booting your @@ -757,7 +678,7 @@ must use &man.dd.1; to write the image directly to the disk: - &prompt.root; dd if=&rel.current;-RELEASE-&arch.i386;-memstick.img of=/dev/da0 bs=64k + &prompt.root; dd if=&os;-&rel.current;-RELEASE-&arch.i386;-memstick.img of=/dev/da0 bs=64k @@ -934,9 +855,10 @@ Floppy, CDROM, First Hard Disk, and so on. - If you needed to prepare boot floppies, then make sure that the - floppy disk is selected. If you are booting from the CDROM then - make sure that that is selected instead. In case of doubt, you + If you are booting from the CDROM then make sure that + the CDROM is selected. If you are booting from a USB disk or + a floppy disk then + make sure that is selected instead. In case of doubt, you should consult the manual that came with your computer, and/or its motherboard. @@ -945,16 +867,23 @@ - If you needed to prepare boot floppies, as described in - , then one of them will be the - first boot disc, probably the one containing - boot.flp. Put this disc in your floppy - drive. + If you prepared a bootable USB stick, as described in + , then plug in your USB + stick before turning on the computer. If you are booting from CDROM, then you will need to turn on the computer, and insert the CDROM at the first opportunity. + + For &os; 7.3 and previous versions, installation + boot floppies are available and can be prepared as + described in . One of + them will be the first boot disc: + boot.flp. Put this disc in your + floppy drive and boot the computer. + + If your computer starts up as normal and loads your existing operating system, then either: @@ -982,6 +911,7 @@ will see a display similar to this (version information omitted): Booting from CD-Rom... +645MB medium detected CD Loader 1.2 Building the boot loader arguments @@ -989,12 +919,12 @@ Relocating the loader and the BTX Starting the BTX loader -BTX loader 1.00 BTX version is 1.01 -Console: internal video/keyboard +BTX loader 1.00 BTX version is 1.02 +Consoles: internal video/keyboard BIOS CD is cd0 BIOS drive C: is disk0 BIOS drive D: is disk1 -BIOS 639kB/261120kB available memory +BIOS 636kB/261056kB available memory FreeBSD/i386 bootstrap loader, Revision 1.1 @@ -1029,7 +959,7 @@ - Whether you booted from floppy or CDROM, the + Whether you booted from CDROM, USB stick or floppy, the boot process will then get to the &os; boot loader menu: @@ -1048,66 +978,7 @@ - - Booting for the Alpha - - Alpha - - - - Start with your computer turned off. - - - - Turn on the computer and wait for a boot monitor - prompt. - - - - If you needed to prepare boot floppies, as described in - then one of them will be the - first boot disc, probably the one containing - boot.flp. Put this disc in your floppy - drive and type the following command to boot the disk - (substituting the name of your floppy drive if - necessary): - - >>>BOOT DVA0 -FLAGS '' -FILE '' - - If you are booting from CDROM, insert the CDROM into - the drive and type the following command to start the - installation (substituting the name of the appropriate - CDROM drive if necessary): - >>>BOOT DKA0 -FLAGS '' -FILE '' - - - - FreeBSD will start to boot. If you are booting from a - floppy disc, at some point you will see the message: - - Insert disk labelled "Kernel floppy 1" and press any key... - - Follow these instructions by removing the - boot.flp disc, insert the - kern1.flp disc, and press - Enter. - - - - Whether you booted from floppy or CDROM, the - boot process will then get to this point: - - Hit [Enter] to boot immediately, or any other key for command prompt. -Booting [kernel] in 9 seconds... _ - - Either wait ten seconds, or press Enter. This - will then launch the kernel configuration menu. - - - - - Booting for &sparc64; @@ -1257,7 +1128,7 @@ For &os; 6.2 and later, after the procedure of device probing, you will see . Use the arrow key to choose a country, region, or group. Then press - Enter, it will set your country and keymap + Enter, it will set your country easily. It is also easy to exit the sysinstall program and start over again. @@ -1272,6 +1143,22 @@ + If you selected United States + as country, the standard American keyboard map will be used, + if a different country is chosen the following menu will be + displayed. Use the arrow keys to choose the correct keyboard + map and press Enter. + +
+ Selecting Keyboard Menu + + + + + + +
+
Select Sysinstall Exit @@ -2213,16 +2100,12 @@ reviewing the help, pressing Enter will return to the Select Distributions Menu. - If a graphical user interface is desired then a distribution - set that is preceded by an X should be - chosen. The configuration of the X server and selection of a default + If a graphical user interface is desired then the + configuration of the X server and selection of a default desktop must be done after the installation of &os;. More - information regarding the configuration of a X server can be + information regarding the installation and configuration of a X server can be found in . - &xorg; is the default version of X11 - that is installed. - If compiling a custom kernel is anticipated, select an option which includes the source code. For more information on why a custom kernel should be built or how to build a custom kernel, see @@ -3164,6 +3047,12 @@ Linux Compatibility + + This part only applies to &os; 7.X installation, if + you install &os; 8.X this screen will not be + proposed. + + User Confirmation Requested Would you like to enable Linux binary compatibility? @@ -3608,15 +3497,23 @@ confirm exiting the installation: User Confirmation Requested - Are you sure you wish to exit? The system will reboot (be sure to - remove any floppies/CDs/DVDs from the drives). + Are you sure you wish to exit? The system will reboot. [ Yes ] No - Select &gui.yes; and remove the floppy if - booting from the floppy. The CDROM drive is locked until the machine - starts to reboot. The CDROM drive is then unlocked and the disk can - be removed from drive (quickly). + Select &gui.yes;. If you are booting from the CDROM drive + the following message will remind you to remove the + disk: + + Message + Be sure to remove the media from the drive. + + [ OK ] + [ Press enter or space ] + + The CDROM drive is locked until the machine + starts to reboot then the disk can + be removed from drive (quickly). Press &gui.ok; to reboot. The system will reboot so watch for any error messages that may appear, see for more @@ -4043,30 +3940,6 @@ the command line. - - - &os;/&arch.alpha; Bootup - - Alpha - - Once the install procedure has finished, you will be - able to start FreeBSD by typing something like this to the - SRM prompt: - - >>>BOOT DKC0 - - This instructs the firmware to boot the specified - disk. To make FreeBSD boot automatically in the future, use - these commands: - - >>> SET BOOT_OSFLAGS A ->>> SET BOOT_FILE '' ->>> SET BOOTDEF_DEV DKC0 ->>> SET AUTO_ACTION BOOT - - The boot messages will be similar (but not identical) to - those produced by FreeBSD booting on the &i386;. - @@ -4406,6 +4279,15 @@ + + + + Marc + Fonvieille + Updated by + + + >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sun Aug 22 18:25:47 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 32A0A10656A8; Sun, 22 Aug 2010 18:25:47 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D02D6106567A for ; Sun, 22 Aug 2010 18:25:46 +0000 (UTC) (envelope-from aman@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id BD2848FC15 for ; Sun, 22 Aug 2010 18:25:46 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id o7MIPk3I075234 for ; Sun, 22 Aug 2010 18:25:46 GMT (envelope-from aman@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id o7MIPkDr075231 for perforce@freebsd.org; Sun, 22 Aug 2010 18:25:46 GMT (envelope-from aman@freebsd.org) Date: Sun, 22 Aug 2010 18:25:46 GMT Message-Id: <201008221825.o7MIPkDr075231@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to aman@freebsd.org using -f From: Aman Jassal To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 182768 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Aug 2010 18:25:47 -0000 http://p4web.freebsd.org/@@182768?ac=10 Change 182768 by aman@src on 2010/08/22 18:25:14 Several things here : introducing netisr abstractions and adding sysctl support to export interface information. netisr abstractions are fairly simple and are more like a porting of structures introduced by Robert Watson. Sysctl support for interface information was done via the addition of support in if_mib. Reviewed by: pgj Affected files ... .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#70 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_if.c#9 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#68 edit .. //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#76 edit .. //depot/projects/soc2009/pgj_libstat/src/sys/net/if_mib.c#3 edit .. //depot/projects/soc2009/pgj_libstat/src/sys/net/if_mib.h#2 edit .. //depot/projects/soc2009/pgj_libstat/src/sys/net/netisr.c#6 edit .. //depot/projects/soc2009/pgj_libstat/src/sys/net/netisr.h#5 edit Differences ... ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat.h#70 (text+ko) ==== @@ -52,6 +52,8 @@ #define MIFTYPE_MAXNAME IFNAMSIZ #define MRTTYPE_MAXVIFS MAXVIFS +#define NETISR_NAMEMAXLEN 32 + #define NETSTAT_ERROR_UNDEFINED 0 #define NETSTAT_ERROR_NOMEMORY 1 #define NETSTAT_ERROR_VERSION 2 @@ -285,6 +287,18 @@ struct mroute_type_list; struct mroute_type_iterator; +struct netisr_protocol; +struct netisr_protocol_list; +struct netisr_protocol_iterator; + +struct netisr_workstream; +struct netisr_workstream_list; +struct netisr_workstream_iterator; + +struct netisr_work; +struct netisr_work_list; +struct netisr_work_iterator; + __BEGIN_DECLS const char *netstat_strerror(int); @@ -1339,6 +1353,68 @@ uint8_t netstat_mrt_get_ttl(const struct mroute_type *, int); int netstat_mrt_get_is_mif_set(const struct mroute_type *, uint32_t); + +/* Netisr Services: */ +void netstat_npp_free(struct netisr_protocol *); +struct netisr_protocol_list *netstat_npl_alloc(void); +void netstat_npl_free(struct netisr_protocol_list *); +int netstat_npl_geterror(const struct netisr_protocol_list *); +int netstat_npl_length(const struct netisr_protocol_list *); + +int netstat_npi_alloc(struct netisr_protocol_list *list, + struct netisr_protocol_iterator **iterator); +const struct netisr_protocol *netstat_npi_first(struct netisr_protocol_iterator *); +const struct netisr_protocol *netstat_npi_next(struct netisr_protocol_iterator *); +void netstat_npi_free(struct netisr_protocol_iterator *); + +uint32_t netstat_np_get_version(const struct netisr_protocol *); +const char* netstat_np_get_name(const struct netisr_protocol *); +uint32_t netstat_np_get_proto(const struct netisr_protocol *); +uint32_t netstat_np_get_qlimit(const struct netisr_protocol *); +uint32_t netstat_np_get_policy(const struct netisr_protocol *); +uint32_t netstat_np_get_flags(const struct netisr_protocol *); + +void netstat_nwsp_free(struct netisr_workstream *); +struct netisr_workstream_list *netstat_nwsl_alloc(void); +void netstat_nwsl_free(struct netisr_workstream_list *); +int netstat_nwsl_geterror(struct netisr_workstream_list *); +int netstat_nwsl_length(struct netisr_workstream_list *); + +int netstat_nwsi_alloc(struct netisr_workstream_list *list, + struct netisr_workstream_iterator **iterator); +const struct netisr_workstream *netstat_nwsi_first(struct netisr_workstream_iterator *); +const struct netisr_workstream *netstat_nwsi_next(struct netisr_workstream_iterator *); +void netstat_nwsi_free(struct netisr_workstream_iterator *); + +uint32_t netstat_nws_get_version(const struct netisr_workstream *); +uint32_t netstat_nws_get_flags(const struct netisr_workstream *); +uint32_t netstat_nws_get_wsid(const struct netisr_workstream *); +uint32_t netstat_nws_get_cpu(const struct netisr_workstream *); + +void netstat_nwp_free(struct netisr_work *); +struct netisr_work_list *netstat_nwl_alloc(void); +void netstat_nwl_free(struct netisr_work_list *); +int netstat_nwl_geterror(struct netisr_work_list *); +int netstat_nwl_length(struct netisr_work_list *); + +int netstat_nwi_alloc(struct netisr_work_list *list, + struct netisr_work_iterator **iterator); +const struct netisr_work *netstat_nwi_first(struct netisr_work_iterator *); +const struct netisr_work *netstat_nwi_next(struct netisr_work_iterator *); +void netstat_nwi_free(struct netisr_work_iterator *); + +uint32_t netstat_nw_get_version(const struct netisr_work *); +uint32_t netstat_nw_get_wsid(const struct netisr_work *); +uint32_t netstat_nw_get_proto(const struct netisr_work *); +uint32_t netstat_nw_get_len(const struct netisr_work *); +uint32_t netstat_nw_get_watermark(const struct netisr_work *); +uint64_t netstat_nw_get_dispatched(const struct netisr_work *); +uint64_t netstat_nw_get_hybrid_dispatched(const struct netisr_work *); +uint64_t netstat_nw_get_qdrops(const struct netisr_work *); +uint64_t netstat_nw_get_queued(const struct netisr_work *); +uint64_t netstat_nw_get_handled(const struct netisr_work *); + + __END_DECLS #endif /* !_NETSTAT_H_ */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_if.c#9 (text+ko) ==== @@ -29,9 +29,11 @@ #include #include #include +#include #include #include +#include #include #include #include @@ -40,6 +42,7 @@ #include #include +#include #include #include #include @@ -57,8 +60,11 @@ static const char *const if_symbol[] = { "_ifnet" }; static void extract_if_data(struct ifnet *ifp, struct interface_type *itp); +static void extract_sif_data(struct ifmib_ifnet_data *iidp, struct interface_type *itp); static struct intfaddr_type *extract_if_address(int type, void *ifaddr, void *saddr, struct interface_type *itp); +static struct intfaddr_type *extract_sif_address(int type, int domain, + struct ifmib_ifaddress_data *iiadp, struct interface_type *itp); #define KREAD(off, dst) do { \ if ((list->itl_error = (kread_data(session->sst_kvm, \ @@ -100,6 +106,20 @@ u_long ifa_addr; u_long ifma_addr; + /* + * XXXAJ : Adding declarations for the sysctl part. + */ + struct ifmib_ifdata_stream *iisp; + struct ifmib_ifaddress_stream *iiasp; + //struct ifmib_ifmadress_stream *iimasp; + struct ifmib_ifnet_data *iidp; + struct ifmib_ifaddress_data *iiadp; + //struct ifmib_ifmaddress_data *iimadp; + size_t ifdata_len, ifaddress_len; + char *buffer_ifdata, *buffer_ifaddress, *p; + int interface_index, interface_to_look_for, ifmib_ifdata_sysctl[6], ifmib_ifaddress_sysctl[6]; + uint32_t interface_count, ifaddress_count; + result = -1; bzero(nls, sizeof(nls)); @@ -164,10 +184,146 @@ } } else { /* Using sysctl(8). */ - /* XXX: not implemented yet :) */ - goto end; + + /* + * XXXAJ : Adding support to export interface data and addresses for libnetstat + * using the pre-existing support offered by ifmib(4). + * + * The algorithm we follow to do so is not exactly straight-forward but + * it is the best compromise we could find when re-using ifmib(4). + * This is, basically, what we do : + * + * 1) Get the number of configured interfaces, which is given by the sysctl + * variable net.link.generic.system.if_count + * 2) Since interface indexes are <= to if_count, we make a loop from 1 + * (which is the lowest an index can be) to if_count, and + * then we call the ifmib sysctl to retrieve all the relevant + * data. + * 3) Once we have retrieved the complete list of configured interfaces, + * we select the one the user requested and print out all + * the information regarding this interface. + */ + const char *mibvar_ifcount = "net.link.generic.system.ifcount"; + int if_count; + + if (sysctlbyname(mibvar_ifcount, 0, &if_count, 0, 0) < 0) { + if (errno != ENOENT) + warn("sysctl: %s", mibvar_ifcount); + goto end; + } + + /* + * From here on in, we loop through the number of configured + * network interfaces, and we call the ifmib sysctls. + */ + + for (interface_index = 1; interface_index <= if_count; interface_index++) { + /* + * XXXAJ : All the sysctl nodes will be properly initialized + * in this for loop. + */ + ifmib_ifdata_sysctl[0] = CTL_NET; + ifmib_ifdata_sysctl[1] = PF_LINK; + ifmib_ifdata_sysctl[2] = NETLINK_GENERIC; + ifmib_ifdata_sysctl[3] = IFMIB_IFDATA; + ifmib_ifdata_sysctl[4] = interface_index; + ifmib_ifdata_sysctl[5] = IFDATA_MONITORING; + + if (sysctl(ifmib_ifdata_sysctl, 6, NULL, &ifdata_len, NULL, 0) < 0) { + if (errno != ENOENT) + warn("sysctl: ifmib_ifdata_sysctl estimate"); + goto end; + } + if ((buffer_ifdata = malloc(ifdata_len)) == 0) { + warnx("malloc %lu bytes", (u_long)ifdata_len); + goto end; + } + if (sysctl(ifmib_ifdata_sysctl, 6, buffer_ifdata, &ifdata_len, NULL, 0) < 0) { + warn("sysctl: ifmib_ifdata_sysctl retrieval"); + goto out_ifdata; + } + if (ifdata_len < sizeof(*iisp)) { + list->itl_error = NETSTAT_ERROR_VERSION; + goto out_ifdata; + } + + p = buffer_ifdata; + iisp = (struct ifmib_ifdata_stream *)p; + p += sizeof(*iisp); + + if (iisp->iis_version != IFMIB_IFDATA_STREAM_VERSION) { + list->itl_error = NETSTAT_ERROR_VERSION; + printf("Error in iis_version\n"); + goto out_ifdata; + } + + for (interface_count = 0; interface_count < iisp->iis_count; interface_count++) { + iidp = (struct ifmib_ifnet_data *)p; + p += sizeof(*iidp); + + if (strcmp(name, iidp->iid_ifi_name) != 0) + continue; + + interface_to_look_for = interface_index; + itp = _netstat_it_allocate(list, iidp->iid_ifi_type, + iidp->iid_ifi_physical, iidp->iid_ifi_name); + extract_sif_data(iidp, itp); + } + } + + /* + * XXXAJ : Now we have to retrieve interface addresses. + */ + ifmib_ifaddress_sysctl[0] = CTL_NET; + ifmib_ifaddress_sysctl[1] = PF_LINK; + ifmib_ifaddress_sysctl[2] = NETLINK_GENERIC; + ifmib_ifaddress_sysctl[3] = IFMIB_IFADDRESS; + ifmib_ifaddress_sysctl[4] = interface_to_look_for; + ifmib_ifaddress_sysctl[5] = domain; + + if (sysctl(ifmib_ifaddress_sysctl, 6, NULL, &ifaddress_len, NULL, 0) < 0) { + if (errno != ENOENT) + warn("sysctl: ifmib_ifaddress_sysctl estimate"); + goto end; + } + if ((buffer_ifaddress = malloc(ifaddress_len)) == 0) { + warnx("malloc %lu bytes", (u_long)ifaddress_len); + goto end; + } + if (sysctl(ifmib_ifaddress_sysctl, 6, buffer_ifaddress, &ifaddress_len, NULL, 0) < 0) { + warn("sysctl: ifmib_ifaddress_sysctl retrieval"); + goto out_ifaddress; + } + if (ifaddress_len < sizeof(*iiasp)) { + list->itl_error = NETSTAT_ERROR_VERSION; + goto out_ifaddress; + } + + p = buffer_ifaddress; + iiasp = (struct ifmib_ifaddress_stream *)p; + p += sizeof(*iiasp); + + if (iiasp->iias_version != IFMIB_IFADDRESS_STREAM_VERSION) { + printf("Error in iias_version\n"); + list->itl_error = NETSTAT_ERROR_VERSION; + goto out_ifaddress; + } + + for (ifaddress_count = 0; ifaddress_count < iiasp->iias_count; ifaddress_count++) { + iiadp = (struct ifmib_ifaddress_data *)p; + p += sizeof(*iiadp); + + if (itp->it_addrcnt >= IFTYPE_MAXADDRCNT) + continue; + itp->it_address[itp->it_addrcnt++] = extract_sif_address(NETSTAT_IF_IFADDR, + domain, iiadp, itp); + } } result = 0; +out_ifdata: + free(buffer_ifdata); +out_ifaddress: + free(buffer_ifaddress); end: return (result); } @@ -195,6 +351,27 @@ itp->it_flags |= NETSTAT_IF_UP; } +void +extract_sif_data(struct ifmib_ifnet_data *iidp, struct interface_type *itp) +{ + itp->it_mtu = iidp->iid_ifi_mtu; + itp->it_in.ft_packets = iidp->iid_ifi_ipackets; + itp->it_in.ft_bytes = iidp->iid_ifi_ibytes; + itp->it_in.ft_mcasts = iidp->iid_ifi_imcasts; + itp->it_in.ft_errors = iidp->iid_ifi_ierrors; + itp->it_in.ft_drops = iidp->iid_ifi_iqdrops; + itp->it_out.ft_packets = iidp->iid_ifi_opackets; + itp->it_out.ft_bytes = iidp->iid_ifi_obytes; + itp->it_out.ft_mcasts = iidp->iid_ifi_omcasts; + itp->it_out.ft_errors = iidp->iid_ifi_oerrors; + itp->it_out.ft_drops = 0; + itp->it_collisions = iidp->iid_ifi_collisions; + itp->it_drops = iidp->iid_ifi_ifq_drops; + itp->it_flags = 0; + if (iidp->iid_ifi_flags & IFF_UP) + itp->it_flags |= NETSTAT_IF_UP; +} + struct intfaddr_type * extract_if_address(int type, void *ifaddr, void *saddr, struct interface_type *itp) @@ -237,14 +414,6 @@ ifap->iat_network = strdup("none"); break; case PF_INET: - ifap->iat_sockaddr_len = sizeof(struct sockaddr_in); - ifap->iat_sockaddr = malloc(ifap->iat_sockaddr_len); - if (ifap->iat_sockaddr != NULL) - memcpy(ifap->iat_sockaddr, sa_in, - ifap->iat_sockaddr_len); - ifap->iat_ifaddr_len = sizeof(struct in_ifaddr); - if (ifap->iat_ifaddr != NULL) - memcpy(ifap->iat_ifaddr, in, ifap->iat_ifaddr_len); strlcpy(ifap->iat_ni_network, netname(htonl(in->ia_subnet), in->ia_subnetmask, 1), sizeof(ifap->iat_ni_network)); @@ -269,14 +438,6 @@ break; #ifdef INET6 case PF_INET6: - ifap->iat_sockaddr_len = sizeof(struct sockaddr_in6); - ifap->iat_sockaddr = malloc(ifap->iat_sockaddr_len); - if (ifap->iat_sockaddr != NULL) - memcpy(ifap->iat_sockaddr, sa_in6, - ifap->iat_sockaddr_len); - ifap->iat_ifaddr_len = sizeof(struct in6_ifaddr); - if (ifap->iat_ifaddr != NULL) - memcpy(ifap->iat_ifaddr, in6, ifap->iat_ifaddr_len); strlcpy(ifap->iat_ni_network, netname6(&in6->ia_addr, &in6->ia_prefixmask.sin6_addr, 1), sizeof(ifap->iat_ni_network)); @@ -306,11 +467,6 @@ case PF_APPLETALK: break; case PF_LINK: - ifap->iat_sockaddr_len = sizeof(struct sockaddr_dl); - ifap->iat_sockaddr = malloc(ifap->iat_sockaddr_len); - if (ifap->iat_sockaddr != NULL) - memcpy(ifap->iat_sockaddr, sa_dl, - ifap->iat_sockaddr_len); sprintf(ifap->iat_ni_network, "", sa_dl->sdl_index); ifap->iat_network = strdup(ifap->iat_ni_network); cp = (char *)LLADDR(sa_dl); @@ -329,3 +485,114 @@ return (ifap); } + +struct intfaddr_type * +extract_sif_address(int type, int domain, struct ifmib_ifaddress_data *iiadp, struct interface_type *itp) +{ + struct intfaddr_type *ifap; + struct sockaddr_in *sin; + struct sockaddr_in6 *sin6, *sin6_prefixmask; + char *p, *cp; + int n; + + ifap =_netstat_iat_allocate(domain, type); + if (ifap == NULL) + return (NULL); + + switch (domain) { + case PF_UNSPEC: + ifap->iat_address = strdup("none"); + ifap->iat_network = strdup("none"); + break; + + case PF_INET: + sin = malloc(sizeof(struct sockaddr_in)); + sin->sin_addr.s_addr = iiadp->iid_inet_address; + sin->sin_len = sizeof(struct sockaddr_in); + sin->sin_family = PF_INET; + + strlcpy(ifap->iat_ni_network, + netname(htonl(iiadp->iid_inet_subnet), iiadp->iid_inet_subnetmask, 1), + sizeof(ifap->iat_ni_network)); + ifap->iat_network = strdup(netname(htonl(iiadp->iid_inet_subnet), + iiadp->iid_inet_subnetmask, 0)); + inet_ntop(PF_INET, &(iiadp->iid_inet_address), ifap->iat_ni_address, + sizeof(ifap->iat_ni_address)); + ifap->iat_address = strdup(routename(iiadp->iid_inet_address, 0)); + ifap->iat_layer = layer_Network; + + switch (type) { + case NETSTAT_IF_IFADDR: + ifap->iat_refcount = iiadp->iid_ifa_refcount; + break; + case NETSTAT_IF_IFMULTIADDR: + ifap->iat_refcount = iiadp->iid_ifa_refcount; + break; + } + ifap->iat_opackets = iiadp->iid_ifa_opackets; + ifap->iat_ipackets = iiadp->iid_ifa_ipackets; + ifap->iat_obytes = iiadp->iid_ifa_obytes; + ifap->iat_ibytes = iiadp->iid_ifa_ibytes; + break; + +#ifdef INET6 + case PF_INET6: + sin6 = malloc(sizeof(struct sockaddr_in6)); + sin6->sin6_len = sizeof(struct sockaddr_in6); + sin6->sin6_family = PF_INET6; + bcopy(&(sin6->sin6_addr), &(iiadp->iid_inet6_address), sizeof(iiadp->iid_inet6_address)); + sin6->sin6_scope_id = iiadp->iid_inet6_scope_id; + + sin6_prefixmask = malloc(sizeof(struct sockaddr_in6)); + sin6_prefixmask->sin6_len = sizeof(struct sockaddr_in6); + sin6_prefixmask->sin6_family = PF_INET6; + bcopy(&(sin6_prefixmask->sin6_addr), &(iiadp->iid_inet6_prefixmask), sizeof(iiadp->iid_inet6_prefixmask)); + strlcpy(ifap->iat_ni_network, netname6(sin6, &(sin6_prefixmask->sin6_addr), 1), + sizeof(ifap->iat_ni_network)); + ifap->iat_network = strdup(netname6(sin6, &(sin6_prefixmask->sin6_addr), 0)); + inet_ntop(PF_INET6, &(sin6->sin6_addr), ifap->iat_ni_address, sizeof(ifap->iat_ni_address)); + ifap->iat_address = strdup(routename6(sin6, 0)); + ifap->iat_layer = layer_Network; + + switch (type) { + case NETSTAT_IF_IFADDR: + ifap->iat_refcount = iiadp->iid_ifa_refcount; + break; + case NETSTAT_IF_IFMULTIADDR: + ifap->iat_refcount = iiadp->iid_ifa_refcount; + break; + } + ifap->iat_opackets = iiadp->iid_ifa_opackets; + ifap->iat_ipackets = iiadp->iid_ifa_ipackets; + ifap->iat_obytes = iiadp->iid_ifa_obytes; + ifap->iat_ibytes = iiadp->iid_ifa_ibytes; + break; +#endif /* INET6 */ + + case PF_IPX: + break; + + case PF_APPLETALK: + break; + + case PF_LINK: + sprintf(ifap->iat_ni_network, "", iiadp->iid_link_layer_index); + ifap->iat_network = strdup(ifap->iat_ni_network); + cp = iiadp->iid_link_layer_address; + n = iiadp->iid_link_layer_alen; + sprintf(ifap->iat_ni_address, iiadp->iid_link_layer_address); + p = ifap->iat_ni_address; + while (--n >= 0) { + sprintf(p, "%02x%s", *cp++ & 0xff, n > 0 ? ":" : ""); + p += 3; + } + ifap->iat_address = strdup(ifap->iat_ni_address); + ifap->iat_layer = layer_Link; + break; + + default: + break; + } + + return (ifap); +} ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_internal.h#68 (text+ko) ==== @@ -242,10 +242,6 @@ char iat_ni_address[20]; /* numeric */ char *iat_network; char iat_ni_network[16]; /* numeric */ - void *iat_sockaddr; - void *iat_ifaddr; - int iat_sockaddr_len; - int iat_ifaddr_len; uint32_t iat_refcount; /* for network-layer addresses: */ uint64_t iat_opackets; @@ -556,6 +552,84 @@ }; +/* Netisr protocol structures. */ +struct netisr_protocol { + uint32_t np_version; + char np_name[NETISR_NAMEMAXLEN]; + uint32_t np_proto; + uint32_t np_qlimit; + uint32_t np_policy; + uint32_t np_flags; + + LIST_ENTRY(netisr_protocol) np_list; +}; + +struct netisr_protocol_list { + LIST_HEAD(, netisr_protocol) npl_list; + int npl_length; + int npl_error; +}; + +struct netisr_protocol_iterator { + struct netisr_protocol_list *npi_list; + struct netisr_protocol *npi_first; + struct netisr_protocol *npi_next; +}; + + +/* Netisr workstream structure type. */ +struct netisr_workstream { + uint32_t nws_version; + uint32_t nws_flags; + uint32_t nws_wsid; + uint32_t nws_cpu; + + LIST_ENTRY(netisr_workstream) nws_list; +}; + +struct netisr_workstream_list { + LIST_HEAD(, netisr_workstream) nwsl_list; + int nwsl_length; + int nwsl_error; +}; + +struct netisr_workstream_iterator { + struct netisr_workstream_list *nwsi_list; + struct netisr_workstream *nwsi_first; + struct netisr_workstream *nwsi_next; +}; + + +/* Netisr work structure type. */ +struct netisr_work { + uint32_t nw_version; + uint32_t nw_wsid; + uint32_t nw_proto; + uint32_t nw_len; + uint32_t nw_watermark; + + uint64_t nw_dispatched; + uint64_t nw_hybrid_dispatched; + uint64_t nw_qdrops; + uint64_t nw_queued; + uint64_t nw_handled; + + LIST_ENTRY(netisr_work) nw_list; +}; + +struct netisr_work_list { + LIST_HEAD(, netisr_work) nwl_list; + int nwl_length; + int nwl_error; +}; + +struct netisr_work_iterator { + struct netisr_work_list *nwi_list; + struct netisr_work *nwi_first; + struct netisr_work *nwi_next; +}; + + int kread_data(kvm_t *kvm, u_long kvm_pointer, void *address, size_t size); int kread_string(kvm_t *kvm, u_long kvm_pointer, char *buffer, int buflen); @@ -598,6 +672,15 @@ int _mrt6_get_nstall_kvm(kvm_t *, struct mf6c *); #endif /* !INET6 */ +void _netstat_npl_empty(struct netisr_protocol_list *); +struct netisr_protocol *_netstat_np_allocate(struct netisr_protocol_list *); + +void _netstat_nwsl_empty(struct netisr_workstream_list *); +struct netisr_workstream *_netstat_nws_allocate(struct netisr_workstream_list *); + +void _netstat_nwl_empty(struct netisr_work_list *); +struct netisr_work *_netstat_nw_allocate(struct netisr_work_list *); + struct routeaddr_type *extract_address(void *, void *, int); const char *resolve_val2str_name(int, const struct val2str *); /* XXX: merge these into a common address resolution routine. */ ==== //depot/projects/soc2009/pgj_libstat/src/lib/libnetstat/netstat_util.c#76 (text+ko) ==== @@ -759,8 +759,6 @@ { free(iatp->iat_address); free(iatp->iat_network); - free(iatp->iat_sockaddr); - free(iatp->iat_ifaddr); free(iatp); } @@ -2450,6 +2448,463 @@ #undef MROUTE_ACC +void +_netstat_npl_empty(struct netisr_protocol_list *list) +{ + struct netisr_protocol *npp; + + while ((npp = LIST_FIRST(&list->npl_list))) { + LIST_REMOVE(npp, np_list); + netstat_npp_free(npp); + } + + list->npl_length = 0; +} + +void +netstat_npp_free(struct netisr_protocol *npp) +{ + free(npp); +} + +struct netisr_protocol * +_netstat_np_allocate(struct netisr_protocol_list *list) +{ + struct netisr_protocol *npp; + + MALLOC_PTR(npp); + + bzero(npp, sizeof(*npp)); + LIST_INSERT_HEAD(&list->npl_list, npp, np_list); + list->npl_length += 1; + + return (npp); +} + +struct netisr_protocol_list * +netstat_npl_alloc(void) +{ + struct netisr_protocol_list *nplp; + + MALLOC_PTR(nplp); + + LIST_INIT(&nplp->npl_list); + nplp->npl_error = NETSTAT_ERROR_UNDEFINED; + nplp->npl_length = 0; + + return (nplp); +} + +void +netstat_npl_free(struct netisr_protocol_list *list) +{ + _netstat_npl_empty(list); + free(list); +} + +int +netstat_npl_geterror(const struct netisr_protocol_list *list) +{ + return(list->npl_error); +} + +int +netstat_npl_length(const struct netisr_protocol_list *list) +{ + return(list->npl_length); +} + +int +netstat_npi_alloc(struct netisr_protocol_list *list, + struct netisr_protocol_iterator **iterator) +{ + struct netisr_protocol_iterator *npip; + + MALLOC_ITR(npip); + + bzero(npip, sizeof(*npip)); + npip->npi_list = list; + npip->npi_first = LIST_FIRST(&list->npl_list); + if (npip->npi_first != NULL) + npip->npi_next = LIST_NEXT(npip->npi_first, np_list); + *iterator = npip; + + return (0); +} + +const struct netisr_protocol * +netstat_npi_first(struct netisr_protocol_iterator *npip) +{ + if (npip->npi_first != NULL) + npip->npi_next = LIST_NEXT(npip->npi_first, np_list); + + return (npip->npi_first); +} + +const struct netisr_protocol * +netstat_npi_next(struct netisr_protocol_iterator *npip) +{ + const struct netisr_protocol *npp; + + npp = npip->npi_next; + if (npip->npi_next != NULL) + npip->npi_next = LIST_NEXT(npip->npi_next, np_list); + + return (npp); +} + +void +netstat_npi_free(struct netisr_protocol_iterator *npip) +{ + free(npip); +} + +uint32_t +netstat_np_get_version(const struct netisr_protocol *npp) +{ + return (npp->np_version); +} + +const char * +netstat_np_get_name(const struct netisr_protocol *npp) +{ + return (npp->np_name); +} + +uint32_t +netstat_np_get_proto(const struct netisr_protocol *npp) +{ + return (npp->np_proto); +} + +uint32_t +netstat_np_get_qlimit(const struct netisr_protocol *npp) +{ + return (npp->np_qlimit); +} + +uint32_t +netstat_np_get_policy(const struct netisr_protocol *npp) +{ + return (npp->np_policy); +} + +uint32_t +netstat_np_get_flags(const struct netisr_protocol *npp) +{ + return (npp->np_flags); +} + + +void +_netstat_nwsl_empty(struct netisr_workstream_list *list) +{ + struct netisr_workstream *nwsp; + + while ((nwsp = LIST_FIRST(&list->nwsl_list))) { + LIST_REMOVE(nwsp, nws_list); + netstat_nwsp_free(nwsp); + } + + list->nwsl_length = 0; +} + +void +netstat_nwsp_free(struct netisr_workstream *nwsp) +{ + free(nwsp); +} + +struct netisr_workstream * +_netstat_nws_allocate(struct netisr_workstream_list *list) +{ + struct netisr_workstream *nwsp; + + MALLOC_PTR(nwsp); + + bzero(nwsp, sizeof(*nwsp)); + LIST_INSERT_HEAD(&list->nwsl_list, nwsp, nws_list); + list->nwsl_length += 1; + + return (nwsp); +} + +struct netisr_workstream_list * +netstat_nwsl_alloc(void) +{ + struct netisr_workstream_list *nwslp; + + MALLOC_PTR(nwslp); + + LIST_INIT(&nwslp->nwsl_list); + nwslp->nwsl_error = NETSTAT_ERROR_UNDEFINED; + nwslp->nwsl_length = 0; + + return (nwslp); +} + +void +netstat_nwsl_free(struct netisr_workstream_list *list) +{ + _netstat_nwsl_empty(list); + free(list); +} + +int +netstat_nwsl_geterror(struct netisr_workstream_list *list) +{ + return(list->nwsl_error); +} + +int +netstat_nwsl_length(struct netisr_workstream_list *list) +{ + return(list->nwsl_length); +} + +int +netstat_nwsi_alloc(struct netisr_workstream_list *list, + struct netisr_workstream_iterator **iterator) +{ + struct netisr_workstream_iterator *nwsip; + + MALLOC_ITR(nwsip); + + bzero(nwsip, sizeof(*nwsip)); + nwsip->nwsi_list = list; + nwsip->nwsi_first = LIST_FIRST(&list->nwsl_list); + if (nwsip->nwsi_first != NULL) + nwsip->nwsi_next = LIST_NEXT(nwsip->nwsi_first, nws_list); + *iterator = nwsip; + + return (0); +} + +const struct netisr_workstream * +netstat_nwsi_first(struct netisr_workstream_iterator *nwsip) +{ + if (nwsip->nwsi_first != NULL) + nwsip->nwsi_next = LIST_NEXT(nwsip->nwsi_first, nws_list); + + return (nwsip->nwsi_first); +} + +const struct netisr_workstream * +netstat_nwsi_next(struct netisr_workstream_iterator *nwsip) +{ + const struct netisr_workstream *nwsp; + + nwsp = nwsip->nwsi_next; + if (nwsip->nwsi_next != NULL) + nwsip->nwsi_next = LIST_NEXT(nwsip->nwsi_next, nws_list); + + return (nwsp); +} + +void +netstat_nwsi_free(struct netisr_workstream_iterator *nwsip) +{ + free(nwsip); +} + +uint32_t +netstat_nws_get_version(const struct netisr_workstream *nwsp) +{ + return (nwsp->nws_version); +} + +uint32_t +netstat_nws_get_flags(const struct netisr_workstream *nwsp) +{ + return (nwsp->nws_flags); +} + +uint32_t +netstat_nws_get_wsid(const struct netisr_workstream *nwsp) +{ + return (nwsp->nws_wsid); +} + +uint32_t +netstat_nws_get_cpu(const struct netisr_workstream *nwsp) +{ + return (nwsp->nws_cpu); +} + + +void +_netstat_nwl_empty(struct netisr_work_list *list) +{ + struct netisr_work *nwp; + + while ((nwp = LIST_FIRST(&list->nwl_list))) { + LIST_REMOVE(nwp, nw_list); + netstat_nwp_free(nwp); + } + + list->nwl_length = 0; +} + +void +netstat_nwp_free(struct netisr_work *nwp) +{ + free(nwp); +} + +struct netisr_work * +_netstat_nw_allocate(struct netisr_work_list *list) +{ + struct netisr_work *nwp; + + MALLOC_PTR(nwp); + + bzero(nwp, sizeof(*nwp)); + LIST_INSERT_HEAD(&list->nwl_list, nwp, nw_list); + list->nwl_length += 1; + + return (nwp); +} + +struct netisr_work_list * +netstat_nwl_alloc(void) +{ + struct netisr_work_list *nwlp; + + MALLOC_PTR(nwlp); + + LIST_INIT(&nwlp->nwl_list); + nwlp->nwl_error = NETSTAT_ERROR_UNDEFINED; + nwlp->nwl_length = 0; + + return (nwlp); +} + +void +netstat_nwl_free(struct netisr_work_list *list) +{ + _netstat_nwl_empty(list); + free(list); +} + +int +netstat_nwl_geterror(struct netisr_work_list *list) +{ + return (list->nwl_error); +} + +int +netstat_nwl_length(struct netisr_work_list *list) +{ + return (list->nwl_length); +} + +int +netstat_nwi_alloc(struct netisr_work_list *list, + struct netisr_work_iterator **iterator) +{ + struct netisr_work_iterator *nwip; + + MALLOC_ITR(nwip); + + bzero(nwip, sizeof(*nwip)); + nwip->nwi_list = list; >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Sun Aug 22 20:14:27 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id BB83410656AA; Sun, 22 Aug 2010 20:14:27 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 4DC0910656A6 for ; Sun, 22 Aug 2010 20:14:27 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 3A8768FC1A for ; Sun, 22 Aug 2010 20:14:27 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id o7MKERLP000400 for ; Sun, 22 Aug 2010 20:14:27 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id o7MKEQCQ000397 for perforce@freebsd.org; Sun, 22 Aug 2010 20:14:26 GMT (envelope-from rene@FreeBSD.org) Date: Sun, 22 Aug 2010 20:14:26 GMT Message-Id: <201008222014.o7MKEQCQ000397@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 182769 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 22 Aug 2010 20:14:27 -0000 http://p4web.freebsd.org/@@182769?ac=10 Change 182769 by rene@rene_acer on 2010/08/22 20:14:25 MFen the Handbook: - Makefile 1.112 -> 1.113 - advanced-networking 1.430 -> 1.431 - disks 1.295 -> 1.297 Affected files ... .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/Makefile#15 edit .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/advanced-networking/chapter.sgml#48 edit .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/disks/chapter.sgml#19 edit Differences ... ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/Makefile#15 (text+ko) ==== @@ -1,9 +1,8 @@ # # $FreeBSD: doc/nl_NL.ISO8859-1/books/handbook/Makefile,v 1.15 2009/01/01 22:50:49 rene Exp $ -# $FreeBSDnl: doc/nl_NL.ISO8859-1/books/handbook/Makefile,v 1.19 2006/01/03 21:17:07 siebrand Exp $ # # %SOURCE% en_US.ISO8859-1/books/handbook/Makefile -# %SRCID% 1.112 +# %SRCID% 1.113 # # Bouw het Nederlandse FreeBSD Handboek. # @@ -61,6 +60,7 @@ IMAGES_EN+= install/boot-loader-menu.scr IMAGES_EN+= install/boot-mgr.scr IMAGES_EN+= install/config-country.scr +IMAGES_EN+= install/config-keymap.scr IMAGES_EN+= install/console-saver1.scr IMAGES_EN+= install/console-saver2.scr IMAGES_EN+= install/console-saver3.scr ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/advanced-networking/chapter.sgml#48 (text+ko) ==== @@ -4,7 +4,7 @@ $FreeBSD: doc/nl_NL.ISO8859-1/books/handbook/advanced-networking/chapter.sgml,v 1.21 2010/05/13 19:32:31 rene Exp $ %SOURCE% en_US.ISO8859-1/books/handbook/advanced-networking/chapter.sgml - %SRCID% 1.430 + %SRCID% 1.431 --> @@ -4495,6 +4495,7 @@ export DESTDIR=/data/misc/diskless mkdir -p ${DESTDIR} cd /usr/src; make buildworld && make buildkernel +make installworld && make installkernel cd /usr/src/etc; make distribution Nadat dit gedaan is, kunnen ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/disks/chapter.sgml#19 (text+ko) ==== @@ -4,7 +4,7 @@ $FreeBSD: doc/nl_NL.ISO8859-1/books/handbook/disks/chapter.sgml,v 1.17 2010/08/17 21:37:08 rene Exp $ %SOURCE% en_US.ISO8859-1/books/handbook/disks/chapter.sgml - %SRCID% 1.295 + %SRCID% 1.297 --> @@ -2155,7 +2155,7 @@ Diskettes worden benaderd door ingangen in /dev net zoals andere apparaten. Om - een rauwe floppy te benaderen gebruik je + een rauwe floppy te benaderen gebruikt u /dev/fdN. @@ -3020,7 +3020,7 @@ bestanden die aangemaakt/verwijderd worden tijdens het back-uppen en meer. Ze presenteerde de resultaten op LISA V in oktober 1991. Zie torture-testing + url="http://www.coredumps.de/doc/dump/zwicky/testdump.doc.html">torture-testing Backup and Archive Programs. @@ -3040,26 +3040,16 @@ bestandssysteemtabel (/etc/fstab) en alle opstartboodschappen, alles in tweevoud. - fix-it diskettes + livefs CD - De opstart- en fixit-diskettes - (boot.flp en - fixit.flp) moeten alle gewenste - apparaten bevatten. De gemakkelijkste manier om dit te - controleren is om de machine opnieuw op te starten met de - opstartdiskette in het diskettestation en de opstartmeldingen - te controleren. Als alle apparaten gemeld en functioneel - zijn, kan stap drie uitgevoerd worden. - - In het andere geval dienen twee eigen opstartbare - diskettes aangemaakt te worden die een kernel bevatten die - alle gewenste schijven kan aankoppelen en toegang heeft tot - het bandstation. Deze diskettes dienen het volgende te - bevatten: fdisk, newfs, - mount en het gebruikte back-upprogramma. - Deze programma's dienen statisch gelinkt te worden. Als - dump gebruikt wordt, moet de diskette - restore bevatten. + Ten derde dient een livefs CD-ROM gebrand te + worden. Deze CD-ROM biedt ondersteuning voor het opstarten in een + &os; livefs reddingsmodus die gebruiker in staat stelt + om vele taken uit te voeren zoals het draaien van &man.dump.8;, + &man.restore.8;, &man.fdisk.8;, &man.bsdlabel.8;, &man.newfs.8;, en + meer. Een livefs CD-image voor + &os;/&arch.i386; &rel.current;-RELEASE is beschikbaar op . Ten derde dienen regelmatig back-upbanden aangemaakt te worden. Alle veranderingen die na de laatste back-up zijn @@ -3067,13 +3057,10 @@ back-upbanden dienen beveiligd te worden tegen overschrijven. - Ten vierde dienen de diskettes (òfwel - boot.flp en - fixit.flp, òfwel de twee eigen - diskettes die in stap twee zijn aangemaakt) en de - back-upbanden getest te worden. Van de handelingen dienen - aantekeningen gemaakt te worden. De aantekeningen, de - opstartbare diskette, de afdrukken en de back-upbanden moeten + Ten vierde dienen de livefs CD-ROM die in stap twee + gemaakt is en de back-upbanden getest te worden. Van de handelingen + dienen aantekeningen gemaakt te worden. De aantekeningen, de + CD-ROM, de afdrukken en de back-upbanden dienen gezamenlijk bewaard te worden. Tijdens het herstellen kunnen de notities ervoor zorgen dat de back-upbanden vernietigd worden. Hoe? In plaats van tar xvf @@ -3081,157 +3068,14 @@ /dev/sa0 worden ingetypt, waardoor de back-upband overschreven wordt. - Als extra veiligheidsmaatregel dienen opstartbare - diskettes en telkens twee back-upbanden gemaakt te worden. + Als extra veiligheidsmaatregel dienen telkens een + livefs CD-ROM en twee back-upbanden gemaakt te worden. Eén van deze banden dient op een plaats op afstand bewaard te worden. Zo'n plaats is NIET de kelder van het zelfde kantoorgebouw. Een aantal bedrijven in het World Trade Center heeft deze les op de harde manier geleerd. Zo'n plaats dient fysiek gescheiden te zijn van de computers en de schijven door een significante afstand. - - - Script voor het aanmaken van de - opstartdiskette - - /mnt/sbin/init -gzip -c -best /sbin/fsck > /mnt/sbin/fsck -gzip -c -best /sbin/mount > /mnt/sbin/mount -gzip -c -best /sbin/halt > /mnt/sbin/halt -gzip -c -best /sbin/restore > /mnt/sbin/restore - -gzip -c -best /bin/sh > /mnt/bin/sh -gzip -c -best /bin/sync > /mnt/bin/sync - -cp /root/.profile /mnt/root - -chmod 500 /mnt/sbin/init -chmod 555 /mnt/sbin/fsck /mnt/sbin/mount /mnt/sbin/halt -chmod 555 /mnt/bin/sh /mnt/bin/sync -chmod 6555 /mnt/sbin/restore - -# -# maak een minimale bestandssysteemtabel aan -# -cat > /mnt/etc/fstab < /mnt/etc/passwd < /mnt/etc/master.passwd < - @@ -3245,25 +3089,15 @@ vervangen te worden voordat gepoogd wordt om een computer te gebruiken. - Indien de hardware in orde is, dienen de diskettes - gecontroleerd te worden. Als een eigen opstartdiskette - gebruikt wordt, start in enkele-gebruiker-modus op (type op - de opstartprompt boot: -s - in). Sla dan de volgende paragraaf over. - - Lees verder als de diskettes - boot.flp en - fixit.flp gebruikt worden. Steek de - diskette boot.flp als eerste in het - diskettestation en start de computer op. Het originele - installatiemenu wordt op het scherm getoond. Kies de optie - Fixit--Repair mode with CDROM or floppy. - Steek de diskette fixit.flp in als erom - gevraagd wordt. restore en de andere + Plaats de livefs CD-ROM in de CD-ROM drive indien + de hardware in orde is en start de computer op. Het originele + installatiemenu wordt op het scherm getoond. Kies het land van + toepassing en kies daarna Fixit -- Repair mode with + CDROM/DVD/floppy en kies het item + CDROM/DVD -- Use the live filesystem + CDROM/DVD. restore en de andere benodigde programma's staan in /mnt2/rescue (/mnt/stand voor &os; ouder dan - versie 5.2). + class="directory">/mnt2/rescue. Herstel elk bestandssysteem apart. @@ -3282,7 +3116,7 @@ partitioneren en te labelen zodat deze overeenkomt met het afgedrukte en bewaarde label. Gebruik voor het opnieuw aanmaken van de bestandssystemen newfs. - Koppel de rootpartitie van de diskette opnieuw aan voor lezen + Koppel de rootpartitie van de schijf opnieuw aan voor lezen en schrijven (mount -u -o rw /mnt). Gebruik voor het herstellen van de gegevens van dit bestandssysteem het back-upprogramma en de back-upbanden @@ -4590,7 +4424,7 @@ Net als met het versleutelen van harde schijven, wordt het versleutelen van het wisselbestand gebruikt om gevoelige data - te beschermen. Stel je eens een applicatie voor dat omgaat het + te beschermen. Stelt u eens een applicatie voor dat omgaat het wachtwoorden. Zolang deze wachtwoorden in het fysieke geheugen blijven is er niets aan de hand. Echter zodra deze verplaatst worden naar het wisselbestand om ruimte te maken voor andere From owner-p4-projects@FreeBSD.ORG Mon Aug 23 16:27:35 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C4DA310656AA; Mon, 23 Aug 2010 16:27:35 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 872101065670 for ; Mon, 23 Aug 2010 16:27:35 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 74AA98FC0A for ; Mon, 23 Aug 2010 16:27:35 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id o7NGRZ54054885 for ; Mon, 23 Aug 2010 16:27:35 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id o7NGRZB9054882 for perforce@freebsd.org; Mon, 23 Aug 2010 16:27:35 GMT (envelope-from hselasky@FreeBSD.org) Date: Mon, 23 Aug 2010 16:27:35 GMT Message-Id: <201008231627.o7NGRZB9054882@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 182805 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 23 Aug 2010 16:27:36 -0000 http://p4web.freebsd.org/@@182805?ac=10 Change 182805 by hselasky@hselasky_laptop001 on 2010/08/23 16:26:44 USB serial: - add new device ID. PR: usb/149900 Affected files ... .. //depot/projects/usb/src/sys/dev/usb/serial/uftdi.c#31 edit .. //depot/projects/usb/src/sys/dev/usb/usbdevs#137 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/serial/uftdi.c#31 (text+ko) ==== @@ -226,6 +226,7 @@ UFTDI_DEV(FTDI, CFA_633, 8U232AM), UFTDI_DEV(FTDI, CFA_634, 8U232AM), UFTDI_DEV(FTDI, CFA_635, 8U232AM), + UFTDI_DEV(FTDI, USB_UIRT, 8U232AM), UFTDI_DEV(FTDI, USBSERIAL, 8U232AM), UFTDI_DEV(FTDI, KBS, 8U232AM), UFTDI_DEV(FTDI, MX2_3, 8U232AM), ==== //depot/projects/usb/src/sys/dev/usb/usbdevs#137 (text+ko) ==== @@ -1574,7 +1574,8 @@ product FTDI EMCU2D 0xe88a Expert mouseCLOCK USB II product FTDI PCMSFU 0xe88b Precision Clock MSF USB product FTDI EMCU2H 0xe88c Expert mouseCLOCK USB II HBG -product FTDI MAXSTREAM 0xee18 Maxstream PKG-U +product FTDI MAXSTREAM 0xee18 Maxstream PKG-U +product FTDI USB_UIRT 0xf850 USB-UIRT product FTDI USBSERIAL 0xfa00 Matrix Orbital USB Serial product FTDI MX2_3 0xfa01 Matrix Orbital MX2 or MX3 product FTDI MX4_5 0xfa02 Matrix Orbital MX4 or MX5 From owner-p4-projects@FreeBSD.ORG Tue Aug 24 14:29:29 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 253521065679; Tue, 24 Aug 2010 14:29:29 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D0044106566B for ; Tue, 24 Aug 2010 14:29:28 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id BDC428FC23 for ; Tue, 24 Aug 2010 14:29:28 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id o7OETS0T029606 for ; Tue, 24 Aug 2010 14:29:28 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id o7OETSWM029603 for perforce@freebsd.org; Tue, 24 Aug 2010 14:29:28 GMT (envelope-from jhb@freebsd.org) Date: Tue, 24 Aug 2010 14:29:28 GMT Message-Id: <201008241429.o7OETSWM029603@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 182846 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Aug 2010 14:29:29 -0000 http://p4web.freebsd.org/@@182846?ac=10 Change 182846 by jhb@jhb_jhbbsd on 2010/08/24 14:28:52 Put some hacks to handle older records under an #ifdef since they don't work for stock FreeBSD. Affected files ... .. //depot/projects/mcelog/mcelog.c#5 edit Differences ... ==== //depot/projects/mcelog/mcelog.c#5 (text) ==== @@ -1264,6 +1264,7 @@ #endif #ifdef __FreeBSD__ +#ifdef LOCAL_HACK struct mca_record_old { uint64_t mr_status; uint64_t mr_addr; @@ -1272,6 +1273,7 @@ int mr_apic_id; int mr_bank; }; +#endif struct mca_record_internal { struct mca_record rec; @@ -1279,17 +1281,21 @@ STAILQ_ENTRY(mca_internal) link; }; +#ifdef LOCAL_HACK struct mca_record_internal_old { struct mca_record_old rec; int logged; STAILQ_ENTRY(mca_internal) link; }; +#endif static struct nlist nl[] = { #define X_MCA_RECORDS 0 { .n_name = "_mca_records" }, +#ifdef LOCAL_HACK #define X_SNAPDATE 1 { .n_name = "_snapdate" }, +#endif { .n_name = NULL }, }; @@ -1322,7 +1328,10 @@ char errbuf[_POSIX2_LINE_MAX]; kvm_t *kvm; size_t record_size, link_offset; - int i, snapdate; + int i; +#ifdef LOCAL_HACK + int snapdate; +#endif kvm = kvm_openfiles(execfile, corefile, NULL, O_RDONLY, errbuf); if (kvm == NULL) @@ -1335,15 +1344,19 @@ /* stqh_first is the first pointer at this address. */ if (kread_symbol(kvm, X_MCA_RECORDS, &mrp, sizeof(mrp)) < 0) errx(1, "kvm_read(mca_records) failed"); +#ifdef LOCAL_HACK if (snapdate >= 20100329) { +#endif record_size = sizeof(struct mca_record); link_offset = __offsetof(struct mca_record_internal, link.stqe_next); +#ifdef LOCAL_HACK } else { record_size = sizeof(struct mca_record_old); link_offset = __offsetof(struct mca_record_internal_old, link.stqe_next); } +#endif for (i = 0; mrp != NULL; i++) { memset(&mr, 0, sizeof(mr)); From owner-p4-projects@FreeBSD.ORG Tue Aug 24 21:31:02 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1867C10656A5; Tue, 24 Aug 2010 21:31:02 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id CEAB31065694 for ; Tue, 24 Aug 2010 21:31:01 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id BBC6A8FC08 for ; Tue, 24 Aug 2010 21:31:01 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id o7OLV14R017758 for ; Tue, 24 Aug 2010 21:31:01 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id o7OLV1GJ017755 for perforce@freebsd.org; Tue, 24 Aug 2010 21:31:01 GMT (envelope-from hselasky@FreeBSD.org) Date: Tue, 24 Aug 2010 21:31:01 GMT Message-Id: <201008242131.o7OLV1GJ017755@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 182862 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Aug 2010 21:31:02 -0000 http://p4web.freebsd.org/@@182862?ac=10 Change 182862 by hselasky@hselasky_laptop001 on 2010/08/24 21:30:10 USB quirks: - update existing quirk - it is likely that all drives from the manufacturer in question needs to be quirked. Avoid forcing the SCSI protocol, hence this information should be provided by the USB config descriptor. PR: usb/149934 Affected files ... .. //depot/projects/usb/src/sys/dev/usb/quirk/usb_quirk.c#37 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/quirk/usb_quirk.c#37 (text+ko) ==== @@ -160,10 +160,8 @@ USB_QUIRK(ALCOR, AU6390, 0x0000, 0xffff, UQ_MSC_NO_SYNC_CACHE), USB_QUIRK(ALCOR, UMCR_9361, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_GETMAXLUN), - USB_QUIRK(ALCOR, TRANSCEND, 0x0142, 0x0142, UQ_MSC_FORCE_WIRE_BBB, - UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_GETMAXLUN, UQ_MSC_NO_SYNC_CACHE), - USB_QUIRK(ALCOR, TRANSCEND, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB, - UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_GETMAXLUN), + USB_QUIRK(ALCOR, TRANSCEND, 0x0000, 0xffff, UQ_MSC_NO_GETMAXLUN, + UQ_MSC_NO_SYNC_CACHE), USB_QUIRK(APACER, HT202, 0x0000, 0xffff, UQ_MSC_NO_TEST_UNIT_READY, UQ_MSC_NO_SYNC_CACHE), USB_QUIRK(ASAHIOPTICAL, OPTIO230, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB, From owner-p4-projects@FreeBSD.ORG Tue Aug 24 22:01:46 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1B6E010656A7; Tue, 24 Aug 2010 22:01:46 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D18EA1065698 for ; Tue, 24 Aug 2010 22:01:45 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id BDD928FC12 for ; Tue, 24 Aug 2010 22:01:45 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id o7OM1jZb024467 for ; Tue, 24 Aug 2010 22:01:45 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id o7OM1jAW024464 for perforce@freebsd.org; Tue, 24 Aug 2010 22:01:45 GMT (envelope-from rene@FreeBSD.org) Date: Tue, 24 Aug 2010 22:01:45 GMT Message-Id: <201008242201.o7OM1jAW024464@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 182864 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 24 Aug 2010 22:01:46 -0000 http://p4web.freebsd.org/@@182864?ac=10 Change 182864 by rene@rene_acer on 2010/08/24 22:01:25 Update handbook/install to 1.411 Affected files ... .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/install/chapter.sgml#16 edit Differences ... ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/install/chapter.sgml#16 (text+ko) ==== @@ -4,7 +4,7 @@ $FreeBSD: doc/nl_NL.ISO8859-1/books/handbook/install/chapter.sgml,v 1.16 2010/08/17 21:37:08 rene Exp $ %SOURCE% en_US.ISO8859-1/books/handbook/install/chapter.sgml - %SRCID% 1.403 + %SRCID% 1.411 --> @@ -87,7 +87,7 @@ In zijn algemeenheid zijn deze installatie-instructies geschreven voor computers met een &i386; architectuur (PC compatible). Waar van toepassing worden - instructies voor andere platformen (bijvoorbeeld Alpha) + instructies voor andere platformen gegeven. Deze handleiding is zoveel mogelijk bijgewerkt, maar toch kunnen er verschillen optreden tussen de installatieprocedure en deze tekst. Er wordt aangeraden dit @@ -113,7 +113,7 @@ Afhankelijk van de methode die u kiest om &os; te installeren, heeft u misschien ook een floppydrive, een ondersteunde CDROM drive, en in sommige gevallen een netwerkadapter nodig. Dit zal - worden behandeld door het . + worden behandeld door het . @@ -136,35 +136,13 @@ Alpha - Om &os;/&arch.alpha; te installeren heeft u een - ondersteund platform (zie ) en een toegewijde - schijf voor &os; nodig. Het is momenteel niet mogelijk om een - schijf met een ander besturingssysteem te delen. Deze schijf - dient aan een SCSI-controller gekoppeld te worden die wordt - ondersteund door de SRM firmware of een IDE-schijf aangenomen - dat de SRM in uw machine het opstarten van IDE-schijven - ondersteunt. - - ARC - - Alpha BIOS - - SRM - - U zult de SRM consolefirmware nodig hebben voor uw - platform. In sommige gevallen is het mogelijk om te wisselen - tussen AlphaBIOS (of ARC) firmware en SRM. In andere gevallen - zal het nodig zijn om nieuwe firmware van de website van de - verkoper te downloaden. - - - Ondersteuning voor de Alpha was verwijderd te beginnen - met &os; 7.0. De - &os; 6.X uitgaveserie is de - laatste die ondersteuning bevat voor deze architectuur. - - + Ondersteuning voor de Alpha was verwijderd te beginnen + met &os; 7.0. De + &os; 6.X uitgaveserie is de + laatste die ondersteuning biedt voor deze architectuur. Kijk op de + Release + Information pagina van de &os; website voor meer + informatie. @@ -510,59 +488,6 @@ - - - Schijfindelingen voor Alpha computers - - Alpha - - Op Alpha computers is een aparte harde schijf nodig voor - &os;. Het is onmogelijk om een schijf te delen met een ander - besturingssysteem. Afhankelijk van de Alpha computer kan de - schijf een SCSI- of IDE-schijf zijn, als de computer er maar - van kan opstarten. - - Conform de conventies van Digital / Compaq handleidingen - is alle SRM invoer weergegeven in hoofdletters. SRM is - ongevoelig voor hoofd- en kleine letters. - - Om de namen en types van de schijven in een machine te - achterhalen kan het commando SHOW DEVICE - in de SRM console prompt gebruikt worden: - - >>>SHOW DEVICE -dka0.0.0.4.0 DKA0 TOSHIBA CD-ROM XM-57 3476 -dkc0.0.0.1009.0 DKC0 RZ1BB-BS 0658 -dkc100.1.0.1009.0 DKC100 SEAGATE ST34501W 0015 -dva0.0.0.0.1 DVA0 -ewa0.0.0.3.0 EWA0 00-00-F8-75-6D-01 -pkc0.7.0.1009.0 PKC0 SCSI Bus ID 7 5.27 -pqa0.0.0.4.0 PQA0 PCI EIDE -pqb0.0.1.4.0 PQB0 PCI EIDE - - Dit is een voorbeeld van een Digital Personal Workstation - 433au en geeft aan dat er drie schijven verbonden zijn met de - computer. De eerste is een CD-ROM station genaamd - DKA0 en de andere twee zijn harde - schijven die achtereenvolgens DKC0 - en DKC100 heten. - - Schijven met namen in het formaat - DKx zijn SCSI schijven. - DKA100 is bijvoorbeeld een SCSI - schijf met SCSI target ID 1 op de eerste SCSI - bus (A), terwijl DKC300 een SCSI - schijf is met SCSI ID 3 op de derde SCSI bus (C). - Apparaatnaam PKx is de SCSI host - bus adapter. Zoals te zien in de uitvoer van SHOW - DEVICE worden SCSI CD-ROM stations op dezelfde - manier behandeld als SCSI harde schijven. - - IDE schijven hebben namen in het formaat - DQx, terwijl - PQx de naam is van de bijbehorende - IDE controller. - @@ -706,17 +631,17 @@ Als &os; gekocht is op CD of DVD dan is alles wat nodig is aanwezig om door te gaan naar . + linkend="install-boot-media">. Als de installatiebestanden nog niet beschikbaar zijn wordt in uitgelegd hoe de installatie via bovenstaande methoden voorbereid kan worden. Nadat de installatiebestanden beschikbaar zijn kunnen de voorbereidingen voor de installatie verdergaan in . + linkend="install-boot-media">. - + Opstartmedia aanmaken De &os; installatieprocedure begint met het opstarten @@ -800,7 +725,7 @@ U dient in plaats hiervan &man.dd.1; gebruiken om de afbeelding direct naar de schijf te schrijven: - &prompt.root; dd if=&rel.current;-RELEASE-&arch.i386;-memstick.img of=/dev/da0 bs=64k + &prompt.root; dd if=&os;-&rel.current;-RELEASE-&arch.i386;-memstick.img of=/dev/da0 bs=64k @@ -914,7 +839,7 @@ tools op de &os; FTP site. - Als de diskettes worden aanmaakt op een &unix; systeem + Als de diskettes worden aanmaakt op een &unix; systeem (zoals een ander &os; systeem) dan kan &man.dd.1; gebruikt worden om de imagebestanden naar diskette te kopiëren. Onder &os;: @@ -990,10 +915,10 @@ CD-ROM, eerste harde schijf, enzovoorts. - Als het nodig was om diskettes aan te maken, stel dan - floppy disk in. Als wordt opstart van een CD-ROM stel dat - dan in. Raadpleeg in geval van twijfel de documentatie - van de computer en/of het moederbord. + Als u van de CD-ROM opstart, zorg er dan voor dat de CD-ROM + geselecteerd is. Als wordt opstart van een USB-schijf of een + diskette, stel dat dan in. Raadpleeg in geval van twijfel de + documentatie van de computer en/of het moederbord. Maak de instellingen, bewaar de veranderingen en sluit het instelprogramma af. De computer moet dan opnieuw @@ -1001,16 +926,25 @@ - Als het nodig was opstartdiskettes te maken, zoals - beschreven in , dan is er - één opstartschijf, waarschijnlijk die met - boot.flp erop. Stop die diskette in - het diskettestation. + Als u een opstartbare USB-stick heeft + klaargemaakt zoals beschreven in , steek dan de USB-stick in + voordat u de computer aanzet. Bij opstarten vanaf CD moet na het aanzetten van de computer zo snel mogelijk de CD-ROM ingestoken worden. + + Voor &os; 7.3 en eerdere versies zijn + installatiediskettes beschikbaar en ze kunnen worden + klaargemaakt zoals beschreven in . Eén van deze is de + eerste opstartschijf: boot.flp. Plaats + deze schijf in uw diskettestation en start de computer + op. + + Als de computer opstart zoals altijd en met het huidige besturingssysteem begint, dan kan dat om de volgende redenen zijn: @@ -1042,6 +976,7 @@ weggelaten): Booting from CD-Rom... +645MB medium detected CD Loader 1.2 Building the boot loader arguments @@ -1049,12 +984,12 @@ Relocating the loader and the BTX Starting the BTX loader -BTX loader 1.00 BTX version is 1.01 -Console: internal video/keyboard +BTX loader 1.00 BTX version is 1.02 +Consoles: internal video/keyboard BIOS CD is cd0 BIOS drive C: is disk0 BIOS drive D: is disk1 -BIOS 639kB/261120kB available memory +BIOS 636kB/261056kB available memory FreeBSD/i386 bootstrap loader, Revision 1.1 @@ -1091,7 +1026,7 @@ - Of nu wordt opstart van diskette of CD-ROM, de + Of nu wordt opstart van CD-ROM, USB-stick of diskette, de opstartprocedure komt op een gegeven moment bij het bootloader-menu van &os;: @@ -1112,68 +1047,6 @@ - Opstarten voor Alpha - - Alpha - - - - Begin met een computer die uit staat. - - - - Zet de computer aan en wacht op de boot monitor - prompt. - - - - - Als het nodig was opstartdiskettes te maken, zoals - beschreven in , dan is er - één eerste opstartschijf, waarschijnlijk die - met boot.flp erop. Stop deze - diskette in het diskettestation en geef het volgende - commando om op te starten vanaf die schijf (vervang de - naam van het diskettestation waar nodig): - - >>>BOOT DVA0 -FLAGS '' -FILE '' - - Bij opstarten vanaf CD-ROM: stop dan de CD-ROM in het - CD-ROM station en geef het volgende commando om de - installatie te starten (vervang daarbij de naam van het - CD-ROM station als nodig): - - >>>BOOT DKA0 -FLAGS '' -FILE '' - - - - &os; start nu op. Bij opstarten vanaf diskette is op - een gegeven moment het volgende op het scherm te zien: - - - Insert disk labelled "Kernel floppy 1" and press any key... - - Volg de instructies op en haal de - boot.flp diskette eruit, stop de - kern1.flp diskette erin en druk op - Enter. - - - - Of nu wordt opstart van diskette of CD-ROM, de - opstartprocedure komt op een gegeven moment op het - volgende punt: - - Hit [Enter] to boot immediately, or any other key for command prompt. -Booting [kernel] in 9 seconds... _ - - Wacht 10 seconden of druk op Enter. - Nu start het menu voor kernelinstellingen. - - - - - Opstarten voor &sparc64; De meeste &sparc64;-systemen zijn ingesteld om automatisch @@ -1326,10 +1199,10 @@ Voor &os; 6.2 en later ziet u na de procedure voor het opsporen van apparaten . Gebruik de pijltoetsen om een land, regio, of groep te kiezen. Druk - daarna op Enter, dit stelt gemakkelijk uw land - en toetsenafbeelding in. Het is ook gemakkelijk om het - programma sysinstall te verlaten en - opnieuw te beginnen. + daarna op Enter, dit stelt gemakkelijk uw land in. + Het is ook gemakkelijk om het programma + sysinstall te verlaten en opnieuw te + beginnen.
Landmenu kiezen @@ -1341,6 +1214,22 @@
+ Als u United States als land heeft + geselecteerd, dan zal de standaard Amerikaanse toetsenbordindeling + worden gebruikt, als een ander land gekozen is, zal het volgende menu + worden afgebeeld. Gebruik de pijltoetsen om de juiste + toetsenbordindeling te kiezen en druk op Enter. + +
+ Toetsenbordmenu kiezen + + + + + + +
+
Sysinstall verlaten @@ -2360,12 +2249,11 @@ informatie geeft het toetsen van Enter opnieuw het menu Select Distributions weer. - Als een grafische gebruikersinterface gewenst is, kies dan - een distributieset waar een X voor staat. - Het instellen van de X-server en de selectie van een standaard - bureaublad wordt na de installatie van &os; uitgevoerd. Meer - informatie over het instellen van een X-server staat beschreven - in . + Als een grafische gebruikersinterface gewenst is, dan dient de + configuratie van de X-server en het kiezen van een standaard + bureaublad na de installatie van &os; te worden uitgevoerd. Meer + informatie over het installeren en instellen van een X-server staat + beschreven in . &xorg; is de standaardversie van X11 die wordt geïnstalleerd. @@ -3329,6 +3217,12 @@ Linux compatibiliteit + + Dit gedeelte is alleen van toepassing op installaties van + &os; 7.X, als u &os; 8.X installeert wordt dit scherm niet + getoond. + + User Confirmation Requested Would you like to enable Linux binary compatibility? @@ -3796,15 +3690,22 @@ bevestiging gevraagd: User Confirmation Requested - Are you sure you wish to exit? The system will reboot (be sure to - remove any floppies/CDs/DVDs from the drives). + Are you sure you wish to exit? The system will reboot. [ Yes ] No - Selecteer &gui.yes; en verwijder de diskette als er van een - diskette is opgestart. Het CD-ROM station is op slot tot de - machine begint met herstarten. Het CD-ROM station wordt dan - vrijgegeven en de CD kan dan (snel) verwijderd worden. + Selecteer &gui.yes;. Als u van het CD-ROM-station opstart zal de + volgende boodschap u eraan herinneren de schijf te verwijderen: + + Message + Be sure to remove the media from the drive. + + [ OK ] + [ Press enter or space ] + + Het CD-ROM-station is geblokkeerd totdat de machine opnieuw wordt + opgestart, dan kan de schijf snel uit het station worden gehaald. Druk + op &gui.ok; om opnieuw op te starten. Het systeem start op, dus let op eventuele foutberichten die getoond worden, zie voor meer @@ -4251,30 +4152,6 @@ startx in te geven op de commandoregel. - - - &os/&arch.alpha; opstarten - - Alpha - - Nadat de installatieprocedure voltooid is, kan &os; - starten door iets als onderstaand in te voeren op de SRM - prompt: - - >>>BOOT DKC0 - - Dit geeft de firmware de opdracht op te starten vanaf de - aangegeven schijf. Gebruik om &os; in de toekomst - automatisch op te laten starten deze commando's: - - >>> SET BOOT_OSFLAGS A ->>> SET BOOT_FILE '' ->>> SET BOOTDEF_DEV DKC0 ->>> SET AUTO_ACTION BOOT - - De opstartberichten zijn vergelijkbaar (maar niet - hetzelfde) als tijdens het opstarten van &os; op &i386;. - @@ -4650,8 +4527,17 @@ Vaschetto Geschreven door - + + + + + + Marc + Fonvieille + Bijgewerkt door + + Installeren voor gevorderden @@ -4678,51 +4564,92 @@ heeft. Hoe is dat mogelijk, kan de vraag zijn. Dat kan met een seriële console. Een seriële console is gewoonweg een andere machine die optreedt als monitor en - toetsenbord voor een systeem. Om dit te doen moeten eerst - opstartdiskettes gemaakt worden, zoals beschreven in . + toetsenbord voor een systeem. Om dit te doen moet eerst een + installatie-USB-stick worden gemaakt, zoals uitgelegd is in of het juiste ISO-image voor de + installatie worden gedownload (zie ). - Volg de volgende stappen om deze diskettes aan te passen om - op te starten met een seriële console: + Volg de volgende stappen om de media te wijzigen om in een + seriële console op te starten (voor een CD-ROM kan de eerste stap + worden overgeslagen): - Opstartdiskettes geschikt maken voor een seriële + <title>Installatie-USB-stick geschikt maken voor een seriële console mount - Als wordt opgestart van de zojuist gemaakt diskettes, + Als wordt opgestart van de zojuist gemaakt USB-stick, start &os; op in de normale installatiemodus. &os; moet echter opstarten naar een seriële console voor de - installatie. Om dit te regelen moet de diskette met - boot.flp gekoppeld worden aan het - &os; systeem met het commando &man.mount.8;. + installatie. Om dit te regelen moet de USB-stick gekoppeld worden + aan het &os; systeem met het commando &man.mount.8;. + + &prompt.root; mount /dev/da0a /mnt + + + Pas het apparaat en het koppelpunt aan uw situatie aan. + + + Nu dat de stick is aangekoppeld, moet deze ingesteld worden om + in een seriële toestand op te starten. Aan het bestand + loader.conf van het bestandssysteem van de + USB-stick een regel worden toegevoegd dat de seriële console + instelt als de systeemconsole: + + &prompt.root; echo 'console="comconsole"' >> /mnt/boot/loader.conf + + Nu de USB-stick correct is geconfigureerd, moet deze + afgekoppeld worden met &man.umount.8;: + + &prompt.root; umount /mnt + + Nu kan de USB-stick worden afgekoppeld en direct naar de derde + stap van deze procedure gegaan worden. + + + + De installatie-CD in staat stellen om in een seriële + console op te starten + + mount - &prompt.root; mount /dev/fd0 /mnt + Als met de CD zou worden opgestart die zojuist van het + installatie-ISO-image is gemaakt (zie ), dan zou &os; opstarten in de normale + installatiemodus. We willen dat &os; voor de installatie opstart + in een seriële console. Om dit te doen, moet het ISO-image + worden uitgepakt, gewijzigd, en opnieuw worden gegenereerd voordat + het op een CD-R wordt gebrandt. - Nu de diskette is aangekoppeld kan de map /mnt worden geopend: + Gebruik &man.tar.1; om alle bestanden uit te pakken van het + installatie-ISO-image, bijvoorbeeld + &os;-8.1-RELEASE-i386-disc1.iso: - &prompt.root; cd /mnt + &prompt.root; mkdir /pad/naar/headless-iso +&prompt.root; tar -C /pad/naar/headless-iso -pxvf &os;-8.1-RELEASE-i386-disc1.iso - Hier moet de diskette worden ingesteld om naar een - seriële console op te starten. Maak een bestand - genaamd boot.config met daarin - /boot/loader -h. Dit geeft een - instelling aan de bootloader door om naar een seriële - console te starten. + Nu moet het installatiemedium worden ingesteld om in een + seriële console op te starten. Aan het bestand + loader.conf van het uitgepakte ISO-image moet + een regel worden toegevoegd dat de seriële console als de + systeemconsole instelt: - &prompt.root; echo "/boot/loader -h" > boot.config + &prompt.root; echo 'console="comconsole"' >> + /pad/naar/headless-iso/boot/loader.conf - Nu de diskette goed is ingesteld moet deze weer - afgekoppeld worden met &man.umount.8;: + Nu kan er een nieuw ISO-image van het gewijzigde bestandssysteem + worden gemaakt. Het gereedschap &man.mkisofs.8; van de port + sysutils/cdrtools wordt + gebruikt: - &prompt.root; cd / -&prompt.root; umount /mnt + &prompt.root; mkisofs -v -b boot/cdboot -no-emul-boot -r -J -V "Headless_installatie" \ + -o Headless-&os;-8.1-RELEASEi386-disc1.iso /pad/naar/headless-iso - Nu kan de diskette uit het diskettestation gehaald - worden. + Nu het ISO-image correct is geconfigureerd, kan het met uw + favoriete brandprogramma op een CD-R worden gebrandt. @@ -4742,10 +4669,10 @@ Opstarten voor het installeren - Nu is het tijd om te beginnen met installeren. Steek - de diskette boot.flp in het station - van de machine die headless wordt geïnstalleerd en zet - hem aan. + Nu is het tijd om te beginnen met installeren. Steek de + USB-stick in de machine die headless wordt geïnstalleerd en zet + hem aan. Als u een voorbereidde CD-ROM gebruikt, zet dan de + machine aan en steek de CD-ROM erin. @@ -4756,13 +4683,16 @@ Nu moet verbinding gemaakt worden met die machine met &man.cu.1;: + &prompt.root; cu -l /dev/cuau0 + + Gebruik op &os; 7.X het volgende commando: + &prompt.root; cu -l /dev/cuad0 Dat is alles! De headless machine kan bediend worden - via de cu sessie. Het installatieprogramma - vraagt de diskette kern1.flp in te geven + via de cu sessie. Het zal de kernel laden en vraagt dan wat voor terminal er gebruikt moeten worden. Selecteer de &os; color console en ga verder met de installatie! From owner-p4-projects@FreeBSD.ORG Wed Aug 25 07:19:50 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 5FBFB10656AA; Wed, 25 Aug 2010 07:19:50 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D672910656A4 for ; Wed, 25 Aug 2010 07:19:49 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id C449B8FC18 for ; Wed, 25 Aug 2010 07:19:49 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id o7P7JnAA039231 for ; Wed, 25 Aug 2010 07:19:49 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id o7P7JnKu039228 for perforce@freebsd.org; Wed, 25 Aug 2010 07:19:49 GMT (envelope-from hselasky@FreeBSD.org) Date: Wed, 25 Aug 2010 07:19:49 GMT Message-Id: <201008250719.o7P7JnKu039228@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 182873 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Aug 2010 07:19:50 -0000 http://p4web.freebsd.org/@@182873?ac=10 Change 182873 by hselasky@hselasky_laptop001 on 2010/08/25 07:19:48 USB controller (XHCI): - correct average TRB length computation Affected files ... .. //depot/projects/usb/src/sys/dev/usb/controller/xhci.c#29 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/controller/xhci.c#29 (text+ko) ==== @@ -2091,7 +2091,7 @@ case UE_INTERRUPT: case UE_ISOCHRONOUS: temp = XHCI_EPCTX_4_MAX_ESIT_PAYLOAD_SET(max_frame_size) | - XHCI_EPCTX_4_AVG_TRB_LEN_SET(XHCI_PAGE_SIZE); + XHCI_EPCTX_4_AVG_TRB_LEN_SET(MIN(XHCI_PAGE_SIZE, max_frame_size)); break; case UE_CONTROL: temp = XHCI_EPCTX_4_AVG_TRB_LEN_SET(8); From owner-p4-projects@FreeBSD.ORG Wed Aug 25 07:22:00 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D7BC310656AD; Wed, 25 Aug 2010 07:21:59 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 9A8C310656AA for ; Wed, 25 Aug 2010 07:21:59 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 87F9E8FC0C for ; Wed, 25 Aug 2010 07:21:59 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id o7P7LxVL041095 for ; Wed, 25 Aug 2010 07:21:59 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id o7P7LxA9041092 for perforce@freebsd.org; Wed, 25 Aug 2010 07:21:59 GMT (envelope-from hselasky@FreeBSD.org) Date: Wed, 25 Aug 2010 07:21:59 GMT Message-Id: <201008250721.o7P7LxA9041092@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 182874 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Aug 2010 07:22:00 -0000 http://p4web.freebsd.org/@@182874?ac=10 Change 182874 by hselasky@hselasky_laptop001 on 2010/08/25 07:21:44 USB controller (EHCI): - use same check like in XHCI driver for setting the CERR field. - we should not use this feature during normal data transactions, but rather let the data transfers fail if there is bad signal conditions so. Affected files ... .. //depot/projects/usb/src/sys/dev/usb/controller/ehci.c#59 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/controller/ehci.c#59 (text+ko) ==== @@ -1866,7 +1866,8 @@ temp.auto_data_toggle = 1; } - if (usbd_get_speed(xfer->xroot->udev) != USB_SPEED_HIGH) { + if ((xfer->xroot->udev->parent_hs_hub != NULL) || + (xfer->xroot->udev->address != 0)) { /* max 3 retries */ temp.qtd_status |= htohc32(temp.sc, EHCI_QTD_SET_CERR(3)); From owner-p4-projects@FreeBSD.ORG Wed Aug 25 07:26:22 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EC78A1065675; Wed, 25 Aug 2010 07:26:21 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A62E6106566C for ; Wed, 25 Aug 2010 07:26:21 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 93F518FC0A for ; Wed, 25 Aug 2010 07:26:21 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id o7P7QLcf041189 for ; Wed, 25 Aug 2010 07:26:21 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id o7P7QLXv041186 for perforce@freebsd.org; Wed, 25 Aug 2010 07:26:21 GMT (envelope-from hselasky@FreeBSD.org) Date: Wed, 25 Aug 2010 07:26:21 GMT Message-Id: <201008250726.o7P7QLXv041186@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 182875 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Aug 2010 07:26:22 -0000 http://p4web.freebsd.org/@@182875?ac=10 Change 182875 by hselasky@hselasky_laptop001 on 2010/08/25 07:26:05 USB quirk (forgot to add a quirk in last patch) PR: usb/149934 Affected files ... .. //depot/projects/usb/src/sys/dev/usb/quirk/usb_quirk.c#38 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/quirk/usb_quirk.c#38 (text+ko) ==== @@ -161,7 +161,7 @@ USB_QUIRK(ALCOR, UMCR_9361, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB, UQ_MSC_FORCE_PROTO_SCSI, UQ_MSC_NO_GETMAXLUN), USB_QUIRK(ALCOR, TRANSCEND, 0x0000, 0xffff, UQ_MSC_NO_GETMAXLUN, - UQ_MSC_NO_SYNC_CACHE), + UQ_MSC_NO_SYNC_CACHE, UQ_MSC_NO_TEST_UNIT_READY), USB_QUIRK(APACER, HT202, 0x0000, 0xffff, UQ_MSC_NO_TEST_UNIT_READY, UQ_MSC_NO_SYNC_CACHE), USB_QUIRK(ASAHIOPTICAL, OPTIO230, 0x0000, 0xffff, UQ_MSC_FORCE_WIRE_BBB, From owner-p4-projects@FreeBSD.ORG Wed Aug 25 11:42:10 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B3EA010656A6; Wed, 25 Aug 2010 11:42:10 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7704710656A3 for ; Wed, 25 Aug 2010 11:42:10 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 6533F8FC1D for ; Wed, 25 Aug 2010 11:42:10 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id o7PBgA8c096240 for ; Wed, 25 Aug 2010 11:42:10 GMT (envelope-from jhb@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id o7PBgAB9096237 for perforce@freebsd.org; Wed, 25 Aug 2010 11:42:10 GMT (envelope-from jhb@freebsd.org) Date: Wed, 25 Aug 2010 11:42:10 GMT Message-Id: <201008251142.o7PBgAB9096237@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to jhb@freebsd.org using -f From: John Baldwin To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 182885 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Aug 2010 11:42:11 -0000 http://p4web.freebsd.org/@@182885?ac=10 Change 182885 by jhb@jhb_jhbbsd on 2010/08/25 11:41:19 Missed one place. Affected files ... .. //depot/projects/mcelog/mcelog.c#6 edit Differences ... ==== //depot/projects/mcelog/mcelog.c#6 (text) ==== @@ -1339,8 +1339,10 @@ if (kvm_nlist(kvm, nl) != 0) errx(1, "kvm_nlist: %s", kvm_geterr(kvm)); +#ifdef LOCAL_HACK if (kread_symbol(kvm, X_SNAPDATE, &snapdate, sizeof(snapdate)) < 0) errx(1, "kvm_read(snapdate) failed"); +#endif /* stqh_first is the first pointer at this address. */ if (kread_symbol(kvm, X_MCA_RECORDS, &mrp, sizeof(mrp)) < 0) errx(1, "kvm_read(mca_records) failed"); From owner-p4-projects@FreeBSD.ORG Wed Aug 25 15:24:53 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C46BA1065697; Wed, 25 Aug 2010 15:24:53 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 795A810656AA for ; Wed, 25 Aug 2010 15:24:53 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 677638FC1A for ; Wed, 25 Aug 2010 15:24:53 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id o7PFOrvZ042402 for ; Wed, 25 Aug 2010 15:24:53 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id o7PFOr3L042399 for perforce@freebsd.org; Wed, 25 Aug 2010 15:24:53 GMT (envelope-from rene@FreeBSD.org) Date: Wed, 25 Aug 2010 15:24:53 GMT Message-Id: <201008251524.o7PFOr3L042399@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 182892 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Aug 2010 15:24:54 -0000 http://p4web.freebsd.org/@@182892?ac=10 Change 182892 by rene@rene_acer on 2010/08/25 15:24:01 MFen handbook/multimedia 1.135 -> 1.137 (plus whitespace fix) Affected files ... .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/multimedia/chapter.sgml#15 edit Differences ... ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/multimedia/chapter.sgml#15 (text+ko) ==== @@ -4,7 +4,7 @@ $FreeBSD: doc/nl_NL.ISO8859-1/books/handbook/multimedia/chapter.sgml,v 1.18 2009/09/29 21:55:11 rene Exp $ %SOURCE% en_US.ISO8859-1/books/handbook/multimedia/chapter.sgml - %SRCID% 1.135 + %SRCID% 1.137 --> @@ -427,7 +427,7 @@ afspelen van een geluidskaart gemultiplext worden door het geluid in de kernel te mixen. - Het aantal virtuele kanalen kan met twee sysctl knoppen + Het aantal virtuele kanalen kan met drie sysctl knoppen als root als volgt ingesteld worden: @@ -1943,7 +1943,7 @@ Hierna moeten we de symbolische koppeling /dev/ugen0.2 aanmaken en het apparaatknooppunt /dev/usb/0.2.0 met de juiste schrijfpermissies - toegankelijk maken voor de groep usb + toegankelijk maken voor de groep usb (0660 of 0664), omdat standaard alleen de eigenaar van deze bestanden (root) ernaar kan schrijven. Dit alles wordt gedaan door de volgende regels From owner-p4-projects@FreeBSD.ORG Wed Aug 25 15:29:17 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6C22010656A9; Wed, 25 Aug 2010 15:29:17 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0FF3E10656A5 for ; Wed, 25 Aug 2010 15:29:17 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id F1FFB8FC16 for ; Wed, 25 Aug 2010 15:29:16 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id o7PFTG5X042551 for ; Wed, 25 Aug 2010 15:29:16 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id o7PFTGEw042548 for perforce@freebsd.org; Wed, 25 Aug 2010 15:29:16 GMT (envelope-from rene@FreeBSD.org) Date: Wed, 25 Aug 2010 15:29:16 GMT Message-Id: <201008251529.o7PFTGEw042548@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 182893 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Aug 2010 15:29:17 -0000 http://p4web.freebsd.org/@@182893?ac=10 Change 182893 by rene@rene_acer on 2010/08/25 15:29:00 MFen handbook/x11 1.202 -> 1.203 (SRCID bump only), and s/package/pakket in running text Affected files ... .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/x11/chapter.sgml#29 edit Differences ... ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/x11/chapter.sgml#29 (text+ko) ==== @@ -3,7 +3,7 @@ $FreeBSD: doc/nl_NL.ISO8859-1/books/handbook/x11/chapter.sgml,v 1.27 2010/07/20 18:13:41 rene Exp $ %SOURCE% en_US.ISO8859-1/books/handbook/x11/chapter.sgml - %SRCID% 1.202 + %SRCID% 1.203 --> @@ -362,14 +362,14 @@ bouwen is tenminste 4 GB vrije schijfruimte nodig. - X11 kan ook als package geïnstalleerd worden doordat er - binaire packages beschikbaar zijn voor &man.pkg.add.1;. Als + X11 kan ook als pakket geïnstalleerd worden doordat er + binaire pakketten beschikbaar zijn voor &man.pkg.add.1;. Als hiervoor de optie remote fetching van &man.pkg.add.1; wordt gebruikt, dan moet het versienummer verwijderd worden. &man.pkg.add.1; haalt automatisch de laatste versie van het programma op. - Om het package voor &xorg; op te + Om het pakket voor &xorg; op te halen en te installeren: &prompt.root; pkg_add -r xorg @@ -377,7 +377,7 @@ Het voorbeeld hierboven installeert de complete X11 distributie inclusief de servers, clients, lettertypen enz. Er - zijn ook afzonderlijke packages en ports beschikbaar voor + zijn ook afzonderlijke pakketten en ports beschikbaar voor verschillende delen van X11. Om een minimale X11-distributie te installeren kunt u als @@ -1497,7 +1497,7 @@ De software kan eenvoudig worden geïnstalleerd vanuit een pakket of de Portscollectie: - Om het GNOME package te + Om het GNOME pakket te installeren: &prompt.root; pkg_add -r gnome2 @@ -1649,15 +1649,15 @@ Net als bij GNOME of iedere andere bureaubladomgeving kan de software eenvoudig - geïnstalleerd met een package of uit de Portscollectie: + geïnstalleerd met een pakket of uit de Portscollectie: - Om het KDE3 package van het + Om het KDE3 pakket van het netwerk te installeren: &prompt.root; pkg_add -r kde - Om het KDE4 package van het + Om het KDE4 pakket van het netwerk te installeren: &prompt.root; pkg_add -r kde4 @@ -1815,7 +1815,7 @@ Installeren van Xfce - Xfce is met een package + Xfce is met een pakket te installeren: &prompt.root; pkg_add -r xfce4 From owner-p4-projects@FreeBSD.ORG Wed Aug 25 15:57:43 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 3504D1065679; Wed, 25 Aug 2010 15:57:43 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id EB867106566C for ; Wed, 25 Aug 2010 15:57:42 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id D968E8FC0A for ; Wed, 25 Aug 2010 15:57:42 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id o7PFvg1B054054 for ; Wed, 25 Aug 2010 15:57:42 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id o7PFvgAh054051 for perforce@freebsd.org; Wed, 25 Aug 2010 15:57:42 GMT (envelope-from hselasky@FreeBSD.org) Date: Wed, 25 Aug 2010 15:57:42 GMT Message-Id: <201008251557.o7PFvgAh054051@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 182895 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Aug 2010 15:57:43 -0000 http://p4web.freebsd.org/@@182895?ac=10 Change 182895 by hselasky@hselasky_laptop001 on 2010/08/25 15:57:22 USB controller (XHCI): - fix programming typo Affected files ... .. //depot/projects/usb/src/sys/dev/usb/controller/xhci.c#30 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/controller/xhci.c#30 (text+ko) ==== @@ -2219,7 +2219,7 @@ is_hub = (sc->sc_hw.devs[index].nports != 0) && ((udev->speed == USB_SPEED_SUPER) || - (udev->speed = USB_SPEED_HIGH)); + (udev->speed == USB_SPEED_HIGH)); if (is_hub) { temp |= XHCI_SCTX_0_HUB_SET(1); From owner-p4-projects@FreeBSD.ORG Wed Aug 25 16:34:57 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 66F541065679; Wed, 25 Aug 2010 16:34:57 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 29C65106566B for ; Wed, 25 Aug 2010 16:34:57 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 17AA38FC0C for ; Wed, 25 Aug 2010 16:34:57 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id o7PGYuPl070544 for ; Wed, 25 Aug 2010 16:34:56 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id o7PGYu4V070541 for perforce@freebsd.org; Wed, 25 Aug 2010 16:34:56 GMT (envelope-from hselasky@FreeBSD.org) Date: Wed, 25 Aug 2010 16:34:56 GMT Message-Id: <201008251634.o7PGYu4V070541@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 182897 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Aug 2010 16:34:57 -0000 http://p4web.freebsd.org/@@182897?ac=10 Change 182897 by hselasky@hselasky_laptop001 on 2010/08/25 16:33:57 USB controller (XHCI): - fix isochronous frame ID computation. Affected files ... .. //depot/projects/usb/src/sys/dev/usb/controller/xhci.c#31 edit .. //depot/projects/usb/src/sys/dev/usb/controller/xhcireg.h#15 edit Differences ... ==== //depot/projects/usb/src/sys/dev/usb/controller/xhci.c#31 (text+ko) ==== @@ -1593,7 +1593,7 @@ dword = XHCI_TRB_3_CHAIN_BIT | XHCI_TRB_3_CYCLE_BIT | XHCI_TRB_3_TYPE_SET(temp->trb_type) | - XHCI_TRB_3_FRID_SET(temp->isoc_frame) | + XHCI_TRB_3_FRID_SET(temp->isoc_frame / 8) | XHCI_TRB_3_TBC_SET(temp->tbc) | XHCI_TRB_3_TLBPC_SET(temp->tlbpc); ==== //depot/projects/usb/src/sys/dev/usb/controller/xhcireg.h#15 (text+ko) ==== @@ -155,7 +155,7 @@ /* XHCI runtime registers. Offset given by XHCI_CAPLENGTH + XHCI_RTSOFF registers */ #define XHCI_MFINDEX 0x0000 /* RO - microframe index */ -#define XHCI_MFINDEX_GET(x) ((x) & 0x1FFF) +#define XHCI_MFINDEX_GET(x) ((x) & 0x3FFF) #define XHCI_IMAN(n) (0x0020 + (0x20 * (n))) /* XHCI interrupt management */ #define XHCI_IMAN_INTR_PEND 0x00000001 /* RW - interrupt pending */ #define XHCI_IMAN_INTR_ENA 0x00000002 /* RW - interrupt enable */ From owner-p4-projects@FreeBSD.ORG Wed Aug 25 16:49:15 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 59B8A1065698; Wed, 25 Aug 2010 16:49:15 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1C3D1106566C for ; Wed, 25 Aug 2010 16:49:14 +0000 (UTC) (envelope-from hselasky@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id D778C8FC0C for ; Wed, 25 Aug 2010 16:49:13 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id o7PGnD2D074711 for ; Wed, 25 Aug 2010 16:49:13 GMT (envelope-from hselasky@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id o7PGnD8q074706 for perforce@freebsd.org; Wed, 25 Aug 2010 16:49:13 GMT (envelope-from hselasky@FreeBSD.org) Date: Wed, 25 Aug 2010 16:49:13 GMT Message-Id: <201008251649.o7PGnD8q074706@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to hselasky@FreeBSD.org using -f From: Hans Petter Selasky To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 182898 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Aug 2010 16:49:15 -0000 http://p4web.freebsd.org/@@182898?ac=10 Change 182898 by hselasky@hselasky_laptop001 on 2010/08/25 16:49:00 LibUSB: - patch for GNU/kFreeBSD by David Moles PR: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=594330 Reviewed by: hselasky @ Affected files ... .. //depot/projects/usb/src/lib/libusb/libusb20.c#19 edit Differences ... ==== //depot/projects/usb/src/lib/libusb/libusb20.c#19 (text+ko) ==== @@ -1182,7 +1182,7 @@ { struct libusb20_backend *pbe; -#ifdef __FreeBSD__ +#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) pbe = libusb20_be_alloc(&libusb20_ugen20_backend); #else pbe = NULL; From owner-p4-projects@FreeBSD.ORG Wed Aug 25 18:05:19 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 544FB10656AC; Wed, 25 Aug 2010 18:05:19 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id F2DD010656A9 for ; Wed, 25 Aug 2010 18:05:18 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id E0BBD8FC1B for ; Wed, 25 Aug 2010 18:05:18 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id o7PI5IhK003061 for ; Wed, 25 Aug 2010 18:05:18 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id o7PI5IXZ003058 for perforce@freebsd.org; Wed, 25 Aug 2010 18:05:18 GMT (envelope-from trasz@freebsd.org) Date: Wed, 25 Aug 2010 18:05:18 GMT Message-Id: <201008251805.o7PI5IXZ003058@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 182899 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Aug 2010 18:05:19 -0000 http://p4web.freebsd.org/@@182899?ac=10 Change 182899 by trasz@trasz_victim on 2010/08/25 18:04:38 Manual pages. Affected files ... .. //depot/projects/soc2009/trasz_limits/share/man/man9/Makefile#16 edit .. //depot/projects/soc2009/trasz_limits/share/man/man9/container_create.9#1 add .. //depot/projects/soc2009/trasz_limits/share/man/man9/rusage_add.9#1 add .. //depot/projects/soc2009/trasz_limits/share/man/man9/rusage_get_limit.9#1 add Differences ... ==== //depot/projects/soc2009/trasz_limits/share/man/man9/Makefile#16 (text+ko) ==== @@ -46,6 +46,7 @@ cd.9 \ condvar.9 \ config_intrhook.9 \ + container_create.9 \ contigmalloc.9 \ copy.9 \ cr_cansee.9 \ @@ -222,6 +223,8 @@ rtalloc.9 \ rtentry.9 \ runqueue.9 \ + rusage_add.9 \ + rusage_get_limit.9 \ rwlock.9 \ sbuf.9 \ scheduler.9 \ @@ -543,6 +546,9 @@ condvar.9 cv_wmesg.9 MLINKS+=config_intrhook.9 config_intrhook_disestablish.9 \ config_intrhook.9 config_intrhook_establish.9 +MLINKS+=container_create.9 container_destroy.9 \ + container_create.9 container_join.9 \ + container_create.9 container_leave.9 MLINKS+=contigmalloc.9 contigfree.9 MLINKS+=copy.9 copyin.9 \ copy.9 copyinstr.9 \ @@ -998,6 +1004,8 @@ runqueue.9 procrunnable.9 \ runqueue.9 remrunqueue.9 \ runqueue.9 setrunqueue.9 +MLINKS+=rusage_add.9 rusage_set.9 \ + rusage_add.9 rusage_sub.9 MLINKS+=rwlock.9 rw_assert.9 \ rwlock.9 rw_destroy.9 \ rwlock.9 rw_downgrade.9 \ From owner-p4-projects@FreeBSD.ORG Wed Aug 25 18:21:27 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id AA3A21065698; Wed, 25 Aug 2010 18:21:27 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6C34610656AD for ; Wed, 25 Aug 2010 18:21:27 +0000 (UTC) (envelope-from yanegomi@gmail.com) Received: from mail-ey0-f182.google.com (mail-ey0-f182.google.com [209.85.215.182]) by mx1.freebsd.org (Postfix) with ESMTP id C93F98FC1D for ; Wed, 25 Aug 2010 18:21:26 +0000 (UTC) Received: by eyx24 with SMTP id 24so604781eyx.13 for ; Wed, 25 Aug 2010 11:21:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:sender:received :in-reply-to:references:date:x-google-sender-auth:message-id:subject :from:to:cc:content-type:content-transfer-encoding; bh=TD8JYMSR1hW6RfdrU6Zhmv64nG6T/nlzhCM/82G+vHE=; b=Ce6gaJQjoz0TRh0agpGXvBrxoDq614DYAd/FXzc9DhDq8uIrKaKTEJ8+6F21878mNO gJLCz2fg8E4QVP8FTL8IErCsCFRE/7wpUlzYEaYnkOqnWiH+MV8PrwqVUOXh7/+42UXN ks8ukz+WRFkZ4a7nFzaYzBKjJEQZlef3+pSFQ= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; b=Y0YSCsUBSvyCvxNUPEaDlBVKfyIGFITVUBDqiLMMZaDpKKw+xF6X1gakx3eWJ8SAHv OUfV4ppEfM10YXyq12hzP6aSbc3N7oSPE1mdsG29fsU/Fs+5NeMzWI4qMAdjnlIcjIlS Zo/xvFU51aGzbYuaCMbCpYn4sSH80S8GWSh58= MIME-Version: 1.0 Received: by 10.213.14.79 with SMTP id f15mr3415413eba.58.1282760485640; Wed, 25 Aug 2010 11:21:25 -0700 (PDT) Sender: yanegomi@gmail.com Received: by 10.14.47.197 with HTTP; Wed, 25 Aug 2010 11:21:25 -0700 (PDT) In-Reply-To: <201008251649.o7PGnD8q074706@skunkworks.freebsd.org> References: <201008251649.o7PGnD8q074706@skunkworks.freebsd.org> Date: Wed, 25 Aug 2010 11:21:25 -0700 X-Google-Sender-Auth: Ftls0mmQFmP7wdihQt27FJya2QQ Message-ID: From: Garrett Cooper To: Hans Petter Selasky Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: Perforce Change Reviews Subject: Re: PERFORCE change 182898 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: Wed, 25 Aug 2010 18:21:28 -0000 On Wed, Aug 25, 2010 at 9:49 AM, Hans Petter Selasky wrote: > http://p4web.freebsd.org/@@182898?ac=3D10 > > Change 182898 by hselasky@hselasky_laptop001 on 2010/08/25 16:49:00 > > =A0 =A0 =A0 =A0LibUSB: > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0- patch for GNU/kFreeBSD by David Moles > > =A0 =A0 =A0 =A0PR: =A0 =A0 =A0 =A0 =A0 =A0 http://bugs.debian.org/cgi-bin= /bugreport.cgi?bug=3D594330 > =A0 =A0 =A0 =A0Reviewed by: =A0 =A0hselasky @ > > Affected files ... > > .. //depot/projects/usb/src/lib/libusb/libusb20.c#19 edit > > Differences ... > > =3D=3D=3D=3D //depot/projects/usb/src/lib/libusb/libusb20.c#19 (text+ko) = =3D=3D=3D=3D > > @@ -1182,7 +1182,7 @@ > =A0{ > =A0 =A0 =A0 =A0struct libusb20_backend *pbe; > > -#ifdef __FreeBSD__ > +#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) > =A0 =A0 =A0 =A0pbe =3D libusb20_be_alloc(&libusb20_ugen20_backend); > =A0#else > =A0 =A0 =A0 =A0pbe =3D NULL; Crazy question... if GNU/kFreeBSD is going to be rebranding the kernel as __FreeBSD_kernel__, what about the rest of the references that are guarded by __FreeBSD__ ? Thanks, -Garrett From owner-p4-projects@FreeBSD.ORG Wed Aug 25 19:28:06 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9977410656A7; Wed, 25 Aug 2010 19:28:06 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 5B9251065694; Wed, 25 Aug 2010 19:28:06 +0000 (UTC) (envelope-from hselasky@freebsd.org) Received: from swip.net (mailfe05.swip.net [212.247.154.129]) by mx1.freebsd.org (Postfix) with ESMTP id A9B448FC15; Wed, 25 Aug 2010 19:28:05 +0000 (UTC) X-Cloudmark-Score: 0.000000 [] X-Cloudmark-Analysis: v=1.1 cv=sIybwy0z7bWw0ilx/SziPN3xnsQN4yn8NMXKZM3k7p4= c=1 sm=1 a=ERo4XiVTCLMA:10 a=8nJEP1OIZ-IA:10 a=M8b_wTzEtboA:10 a=MnI1ikcADjEx7bvsp0jZvQ==:17 a=6I5d2MoRAAAA:8 a=xNf9USuDAAAA:8 a=XUorp9ACwTL8auJ8axcA:9 a=L-EdpAYFUWLlLPH4FKMA:7 a=fJ2L642aUhUfEysqy4mb6Pwr7p8A:4 a=wPNLvfGTeEIA:10 a=SV7veod9ZcQA:10 a=MnI1ikcADjEx7bvsp0jZvQ==:117 Received: from [188.126.201.140] (account mc467741@c2i.net HELO laptop002.hselasky.homeunix.org) by mailfe05.swip.net (CommuniGate Pro SMTP 5.2.19) with ESMTPA id 11057869; Wed, 25 Aug 2010 21:18:01 +0200 Received-SPF: softfail receiver=mailfe05.swip.net; client-ip=188.126.201.140; envelope-from=hselasky@freebsd.org From: Hans Petter Selasky To: Garrett Cooper Date: Wed, 25 Aug 2010 21:14:05 +0200 User-Agent: KMail/1.13.5 (FreeBSD/8.1-STABLE; KDE/4.4.5; amd64; ; ) References: <201008251649.o7PGnD8q074706@skunkworks.freebsd.org> In-Reply-To: X-Face: +~\`s("[*|O,="7?X@L.elg*F"OA\I/3%^p8g?ab%RN'( =?iso-8859-1?q?=3B=5FIjlA=3A=0A=09hGE=2E=2EEw?=, =?iso-8859-1?q?XAQ*o=23=5C/M=7ESC=3DS1-f9=7BEzRfT=27=7CHhll5Q=5Dha5Bt-s=7Co?= =?iso-8859-1?q?TlKMusi=3A1e=5BwJl=7Dkd=7DGR=0A=09Z0adGx-x=5F0zGbZj=27e?=(Y[(UNle~)8CQWXW@:DX+9)_YlB[tIccCPN$7/L' MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <201008252114.05428.hselasky@freebsd.org> Cc: Perforce Change Reviews Subject: Re: PERFORCE change 182898 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: Wed, 25 Aug 2010 19:28:06 -0000 On Wednesday 25 August 2010 20:21:25 Garrett Cooper wrote: > On Wed, Aug 25, 2010 at 9:49 AM, Hans Petter Selasky > > wrote: > > http://p4web.freebsd.org/@@182898?ac=10 > > > > Change 182898 by hselasky@hselasky_laptop001 on 2010/08/25 16:49:00 > > > > LibUSB: > > - patch for GNU/kFreeBSD by David Moles > > > > PR: > > http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=594330 Reviewed by: > > hselasky @ > > > > Affected files ... > > > > .. //depot/projects/usb/src/lib/libusb/libusb20.c#19 edit > > > > Differences ... > > > > ==== //depot/projects/usb/src/lib/libusb/libusb20.c#19 (text+ko) ==== > > > > @@ -1182,7 +1182,7 @@ > > { > > struct libusb20_backend *pbe; > > > > -#ifdef __FreeBSD__ > > +#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) > > pbe = libusb20_be_alloc(&libusb20_ugen20_backend); > > #else > > pbe = NULL; > > Crazy question... if GNU/kFreeBSD is going to be rebranding the kernel > as __FreeBSD_kernel__, what about the rest of the references that are > guarded by __FreeBSD__ ? > Thanks, > -Garrett This check is not for checking if we are compiling in the kernel or not. It is only to check if we have a FreeBSD system kernel or not when compiling in userspace. Fortunately LibUSB only has one of these checks. Was that your question? --HPS From owner-p4-projects@FreeBSD.ORG Wed Aug 25 21:15:35 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 101C710656A8; Wed, 25 Aug 2010 21:15:35 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id C692410656A3; Wed, 25 Aug 2010 21:15:34 +0000 (UTC) (envelope-from yanegomi@gmail.com) Received: from mail-ew0-f54.google.com (mail-ew0-f54.google.com [209.85.215.54]) by mx1.freebsd.org (Postfix) with ESMTP id 292AB8FC13; Wed, 25 Aug 2010 21:15:33 +0000 (UTC) Received: by ewy4 with SMTP id 4so666433ewy.13 for ; Wed, 25 Aug 2010 14:15:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:sender:received :in-reply-to:references:date:x-google-sender-auth:message-id:subject :from:to:cc:content-type:content-transfer-encoding; bh=I2gpf82RGSLbJQQe6PXzk09cCC8dN6GX/2iYwSswQHI=; b=VsgNwLhSsl/lyiqF4N+zQtjaz9lS1sGSrYxy0ppnieXYH67FzR/6Y368+G3hkp4diO ncMaJHdaoh1rUGN5uw6yh+EhA9pG5Fukdl71PDDbj6QD3AlP+PEKvQzrfsw/wLXpgceH yp4kHlvCCsQ5A4Uu5BBH05Zld0I2un2a2fVTA= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:cc:content-type :content-transfer-encoding; b=ZFpLGhfypqtA+hb64EXApYfoN8aOTkl0FFaP8e+58ihAS2c37oaFaB1sdErVZCrcya oT3QDs6ATULSva+MoMqnyvSNeQ+1fYlqJ3qKqp4CwXY0E7SrPo7sApJ/gfjxEgWVrhw8 cYPwWglMmBcurMtYX0XMWpra2pLhy1jQoQToM= MIME-Version: 1.0 Received: by 10.213.80.140 with SMTP id t12mr5976132ebk.27.1282770932631; Wed, 25 Aug 2010 14:15:32 -0700 (PDT) Sender: yanegomi@gmail.com Received: by 10.14.47.197 with HTTP; Wed, 25 Aug 2010 14:15:32 -0700 (PDT) In-Reply-To: <201008252114.05428.hselasky@freebsd.org> References: <201008251649.o7PGnD8q074706@skunkworks.freebsd.org> <201008252114.05428.hselasky@freebsd.org> Date: Wed, 25 Aug 2010 14:15:32 -0700 X-Google-Sender-Auth: cmPxzBuVmQqRkAYqrDnSEk6rqlo Message-ID: From: Garrett Cooper To: Hans Petter Selasky Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: Perforce Change Reviews Subject: Re: PERFORCE change 182898 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: Wed, 25 Aug 2010 21:15:35 -0000 On Wed, Aug 25, 2010 at 12:14 PM, Hans Petter Selasky wrote: > On Wednesday 25 August 2010 20:21:25 Garrett Cooper wrote: >> On Wed, Aug 25, 2010 at 9:49 AM, Hans Petter Selasky >> >> wrote: >> > http://p4web.freebsd.org/@@182898?ac=3D10 >> > >> > Change 182898 by hselasky@hselasky_laptop001 on 2010/08/25 16:49:00 >> > >> > =A0 =A0 =A0 =A0LibUSB: >> > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0- patch for GNU/kFreeBSD by David Moles >> > >> > =A0 =A0 =A0 =A0PR: >> > http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D594330 Reviewed by: >> > =A0hselasky @ >> > >> > Affected files ... >> > >> > .. //depot/projects/usb/src/lib/libusb/libusb20.c#19 edit >> > >> > Differences ... >> > >> > =3D=3D=3D=3D //depot/projects/usb/src/lib/libusb/libusb20.c#19 (text+k= o) =3D=3D=3D=3D >> > >> > @@ -1182,7 +1182,7 @@ >> > =A0{ >> > =A0 =A0 =A0 =A0struct libusb20_backend *pbe; >> > >> > -#ifdef __FreeBSD__ >> > +#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) >> > =A0 =A0 =A0 =A0pbe =3D libusb20_be_alloc(&libusb20_ugen20_backend); >> > =A0#else >> > =A0 =A0 =A0 =A0pbe =3D NULL; >> >> Crazy question... if GNU/kFreeBSD is going to be rebranding the kernel >> as __FreeBSD_kernel__, what about the rest of the references that are >> guarded by __FreeBSD__ ? >> Thanks, >> -Garrett > > This check is not for checking if we are compiling in the kernel or not. = It is > only to check if we have a FreeBSD system kernel or not when compiling in > userspace. Fortunately LibUSB only has one of these checks. > > Was that your question? That answered my question I suppose. It's just kind of interesting how things are relatively mix and match with the GNU/*BSD hybrid OSes out there. Thanks! -Garrett From owner-p4-projects@FreeBSD.ORG Wed Aug 25 21:49:06 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0862C10656AD; Wed, 25 Aug 2010 21:49:06 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id BEC3310656AB for ; Wed, 25 Aug 2010 21:49:05 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id AC2AA8FC15 for ; Wed, 25 Aug 2010 21:49:05 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id o7PLn5wx051660 for ; Wed, 25 Aug 2010 21:49:05 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id o7PLn5qm051657 for perforce@freebsd.org; Wed, 25 Aug 2010 21:49:05 GMT (envelope-from trasz@freebsd.org) Date: Wed, 25 Aug 2010 21:49:05 GMT Message-Id: <201008252149.o7PLn5qm051657@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 182912 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 25 Aug 2010 21:49:06 -0000 http://p4web.freebsd.org/@@182912?ac=10 Change 182912 by trasz@trasz_victim on 2010/08/25 21:48:51 There is a problem with change_ruid() - it updates process counts (calls chgproccnt()), which doesn't make sense in cases where it operates on credentials not assigned to the process. There is exactly one such situation in the tree - in the unionfs code. Since we already need change_cred() routine, we can fix the problem moving messing with chgproccnt() from change_ruid() into change_cred(). Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_prot.c#28 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_prot.c#28 (text+ko) ==== @@ -2126,6 +2126,11 @@ { PROC_LOCK_ASSERT(p, MA_OWNED); + if (p->p_ucred->cr_ruidinfo != newcred->cr_ruidinfo) { + chgproccnt(p->p_ucred->cr_ruidinfo, -1, 0); + chgproccnt(newcred->cr_ruidinfo, 1, 0); + } + #ifdef HRL hrl_proc_ucred_changing(p, newcred); #endif @@ -2173,12 +2178,10 @@ change_ruid(struct ucred *newcred, struct uidinfo *ruip) { - (void)chgproccnt(newcred->cr_ruidinfo, -1, 0); newcred->cr_ruid = ruip->ui_uid; uihold(ruip); uifree(newcred->cr_ruidinfo); newcred->cr_ruidinfo = ruip; - (void)chgproccnt(newcred->cr_ruidinfo, 1, 0); } /*- From owner-p4-projects@FreeBSD.ORG Thu Aug 26 20:34:49 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 69AA51065694; Thu, 26 Aug 2010 20:34:49 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 2C652106566B for ; Thu, 26 Aug 2010 20:34:49 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id F399B8FC12 for ; Thu, 26 Aug 2010 20:34:48 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id o7QKYmJv065789 for ; Thu, 26 Aug 2010 20:34:48 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id o7QKYmvj065786 for perforce@freebsd.org; Thu, 26 Aug 2010 20:34:48 GMT (envelope-from trasz@freebsd.org) Date: Thu, 26 Aug 2010 20:34:48 GMT Message-Id: <201008262034.o7QKYmvj065786@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 182937 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Aug 2010 20:34:49 -0000 http://p4web.freebsd.org/@@182937?ac=10 Change 182937 by trasz@trasz_victim on 2010/08/26 20:33:44 File descriptor accounting. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_descrip.c#16 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_descrip.c#16 (text+ko) ==== @@ -274,11 +274,19 @@ getdtablesize(struct thread *td, struct getdtablesize_args *uap) { struct proc *p = td->td_proc; +#ifdef CONTAINERS + uint64_t lim; +#endif PROC_LOCK(p); td->td_retval[0] = min((int)lim_cur(p, RLIMIT_NOFILE), maxfilesperproc); PROC_UNLOCK(p); +#ifdef CONTAINERS + lim = rusage_get_limit(td->td_proc, RUSAGE_NOFILE); + if (lim < td->td_retval[0]) + td->td_retval[0] = lim; +#endif return (0); } @@ -791,8 +799,25 @@ * out for a race. */ if (flags & DUP_FIXED) { - if (new >= fdp->fd_nfiles) + if (new >= fdp->fd_nfiles) { +#ifdef CONTAINERS + /* + * The resource limits are here instead of e.g. fdalloc(), + * because the file descriptor table may be shared between + * processes, so we can't really use rusage_add()/rusage_sub(). + * Instead of e.g. counting the number of actually allocated + * descriptors, just put the limit on the size of the file + * descriptor table. Entries are small, and we'll need a limit + * for vnodes and sockets anyway. + */ + if (rusage_set(p, RUSAGE_NOFILE, new + 1)) { + FILEDESC_XUNLOCK(fdp); + fdrop(fp, td); + return (EMFILE); + } +#endif fdgrowtable(fdp, new + 1); + } if (fdp->fd_ofiles[new] == NULL) fdused(fdp, new); } else { @@ -1461,6 +1486,10 @@ return (EMFILE); if (fd < fdp->fd_nfiles) break; +#ifdef CONTAINERS + if (rusage_set(p, RUSAGE_NOFILE, min(fdp->fd_nfiles * 2, maxfd))) + return (EMFILE); +#endif fdgrowtable(fdp, min(fdp->fd_nfiles * 2, maxfd)); } @@ -1492,6 +1521,11 @@ FILEDESC_LOCK_ASSERT(fdp); + /* + * XXX: This is only called from uipc_usrreq.c:unp_externalize(); + * call rusage_add() from there instead of dealing with containers + * here. + */ PROC_LOCK(p); lim = min((int)lim_cur(p, RLIMIT_NOFILE), maxfilesperproc); PROC_UNLOCK(p); @@ -1738,6 +1772,9 @@ if (fdp == NULL) return; +#ifdef CONTAINERS + rusage_set(td->td_proc, RUSAGE_NOFILE, 0); +#endif /* Check for special need to clear POSIX style locks */ fdtol = td->td_proc->p_fdtol; if (fdtol != NULL) { From owner-p4-projects@FreeBSD.ORG Thu Aug 26 20:34:50 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 24BB41065777; Thu, 26 Aug 2010 20:34:49 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3ECC7106566C for ; Thu, 26 Aug 2010 20:34:49 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 2C36D8FC14 for ; Thu, 26 Aug 2010 20:34:49 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id o7QKYnQV065795 for ; Thu, 26 Aug 2010 20:34:49 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id o7QKYn9Q065792 for perforce@freebsd.org; Thu, 26 Aug 2010 20:34:49 GMT (envelope-from trasz@freebsd.org) Date: Thu, 26 Aug 2010 20:34:49 GMT Message-Id: <201008262034.o7QKYn9Q065792@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 182938 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Aug 2010 20:34:50 -0000 http://p4web.freebsd.org/@@182938?ac=10 Change 182938 by trasz@trasz_victim on 2010/08/26 20:34:16 Use proper variable name. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/sys/container.h#11 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/sys/container.h#11 (text+ko) ==== @@ -92,10 +92,10 @@ LIST_HEAD(, hrl_rule_link) c_rule_links; }; -int rusage_add(struct proc *p, int object, uint64_t amount); -int rusage_set(struct proc *p, int object, uint64_t amount); -void rusage_sub(struct proc *p, int object, uint64_t amount); -uint64_t rusage_get_limit(struct proc *p, int object); +int rusage_add(struct proc *p, int resource, uint64_t amount); +int rusage_set(struct proc *p, int resource, uint64_t amount); +void rusage_sub(struct proc *p, int resource, uint64_t amount); +uint64_t rusage_get_limit(struct proc *p, int resource); void container_create(struct container *container); void container_destroy(struct container *container); From owner-p4-projects@FreeBSD.ORG Thu Aug 26 20:35:56 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id E1F301065698; Thu, 26 Aug 2010 20:35:55 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8C7D01065693 for ; Thu, 26 Aug 2010 20:35:55 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 3194A8FC14 for ; Thu, 26 Aug 2010 20:35:55 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id o7QKZtoT065818 for ; Thu, 26 Aug 2010 20:35:55 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id o7QKZtjV065815 for perforce@freebsd.org; Thu, 26 Aug 2010 20:35:55 GMT (envelope-from trasz@freebsd.org) Date: Thu, 26 Aug 2010 20:35:55 GMT Message-Id: <201008262035.o7QKZtjV065815@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 182939 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Aug 2010 20:35:56 -0000 http://p4web.freebsd.org/@@182939?ac=10 Change 182939 by trasz@trasz_victim on 2010/08/26 20:35:14 Update TODO. Affected files ... .. //depot/projects/soc2009/trasz_limits/TODO#27 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/TODO#27 (text+ko) ==== @@ -9,15 +9,12 @@ - locked memory usage (RUSAGE_MEMLOCK), in megabytes - resident set size (physical memory usage) (RUSAGE_RSS), in megabytes - stack size (RUSAGE_STACK), in megabytes, + - number of file descriptors (RUSAGE_NOFILE) + - swap usage (RUSAGE_SWAP), in megabytes + - amount of memory consumed by socket buffers (RUSAGE_SBSIZE), in megabytes Limits to do: -Milestone 1: - - - swap usage (RUSAGE_SWAP), in megabytes - - number of file descriptors (RUSAGE_NOFILE) - - amount of memory consumed by socket buffers (RUSAGE_SBSIZE), in megabytes - Milestone 2: - number of kernel-visible threads (RUSAGE_NTHR) @@ -68,6 +65,22 @@ Also, try to figure out what's going on with 'intr' p_flag - checking for P_SYSTEM didn't really work for that process. + - Right now, the whole containers stuff is under a single mutex. This is internal + to containers, i.e. the API consumers don't need to care, thus it's easy to change. + + I'd need to run benchmarks first, but two strategies come to mind: + + 1. Replace container_lock with rmlock, protecting the container hierarchy. The lock + would be acquired for write in operations changing the hierarchy, and for read + for all other operations. When locked for read, the counters would be accessed + using atomic instructions. + + 2. Replace single container_lock with individual per-container mutexes. + + - RUSAGE_NOFILE accounts for size of file descriptor table, rather than the number + of file descriptors. This shouldn't be a problem, but might be worth remembering + about. + HRL-specific issues: - Bring back per-group limits. From owner-p4-projects@FreeBSD.ORG Fri Aug 27 17:46:18 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 293EE10656AC; Fri, 27 Aug 2010 17:46:18 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id DFE3E1065698 for ; Fri, 27 Aug 2010 17:46:17 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id CD4928FC13 for ; Fri, 27 Aug 2010 17:46:17 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id o7RHkH0Q038493 for ; Fri, 27 Aug 2010 17:46:17 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id o7RHkH8i038490 for perforce@freebsd.org; Fri, 27 Aug 2010 17:46:17 GMT (envelope-from trasz@freebsd.org) Date: Fri, 27 Aug 2010 17:46:17 GMT Message-Id: <201008271746.o7RHkH8i038490@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 182961 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Aug 2010 17:46:18 -0000 http://p4web.freebsd.org/@@182961?ac=10 Change 182961 by trasz@trasz_victim on 2010/08/27 17:45:13 The routine that updates process times takes allproc_lock sx, and it's not legal to do this from the callout. Run it from taskqueue instead. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/kern/kern_resource.c#46 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_resource.c#46 (text+ko) ==== @@ -59,6 +59,7 @@ #include #include #include +#include #include #include @@ -82,7 +83,8 @@ static void ruxagg_locked(struct rusage_ext *rux, struct thread *td); #ifdef CONTAINERS -struct callout rusage_cpu_callout; +static struct callout rusage_cpu_callout; +static struct task rusage_cpu_task; #endif /* @@ -624,6 +626,17 @@ static void rusage_cpu_update(void *arg) { + + /* + * The rusage_cpu_task_fn() routine may sleep, so we have to put it + * into taskqueue instead of running directly from callout. + */ + taskqueue_enqueue(taskqueue_thread, &rusage_cpu_task); +} + +static void +rusage_cpu_task_fn(void *arg, int pending) +{ struct thread *td; struct proc *p; @@ -1332,6 +1345,7 @@ * XXX: Piggybacked for now; in the future it should have * it's own function. */ + TASK_INIT(&rusage_cpu_task, 0, rusage_cpu_task_fn, NULL); callout_init(&rusage_cpu_callout, 1); callout_reset(&rusage_cpu_callout, hz, rusage_cpu_update, NULL); #endif From owner-p4-projects@FreeBSD.ORG Fri Aug 27 20:35:19 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id C20AA10656AA; Fri, 27 Aug 2010 20:35:18 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6A6AA10656A6 for ; Fri, 27 Aug 2010 20:35:18 +0000 (UTC) (envelope-from rene@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 57A1B8FC14 for ; Fri, 27 Aug 2010 20:35:18 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id o7RKZInk073583 for ; Fri, 27 Aug 2010 20:35:18 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id o7RKZIT1073580 for perforce@freebsd.org; Fri, 27 Aug 2010 20:35:18 GMT (envelope-from rene@FreeBSD.org) Date: Fri, 27 Aug 2010 20:35:18 GMT Message-Id: <201008272035.o7RKZIT1073580@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to rene@FreeBSD.org using -f From: Rene Ladan To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 182969 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 27 Aug 2010 20:35:19 -0000 http://p4web.freebsd.org/@@182969?ac=10 Change 182969 by rene@rene_acer on 2010/08/27 20:35:11 MFen handbook/ppp-and-slip 1.192 -> 1.194 Affected files ... .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml#22 edit Differences ... ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml#22 (text+ko) ==== @@ -4,7 +4,7 @@ $FreeBSD: doc/nl_NL.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml,v 1.5 2009/03/23 12:29:21 rene Exp $ %SOURCE% en_US.ISO8859-1/books/handbook/ppp-and-slip/chapter.sgml - %SRCID% 1.192 + %SRCID% 1.194 --> @@ -54,7 +54,8 @@ Hoe gebruikers PPP opgezet kan worden. - Hoe kernel PPP opgezet kan worden. + Hoe kernel PPP opgezet kan worden (alleen voor + &os; 7.X). Hoe PPPoE opgezet kan worden (PPP @@ -66,7 +67,7 @@ Hoe een SLIP server en cliënt opgezet kan worden en - hoe dat geconfigureerd wordt. + hoe dat geconfigureerd wordt (alleen voor &os; 7.X). @@ -153,6 +154,17 @@ Gebruik maken van gebruiker PPP + + Met ingang van &os; 8.0 zijn apparaatknooppunten voor + seriële poorten hernoemd van + /dev/cuadN naar + /dev/cuauN en van + /dev/ttydN naar + /dev/ttyuN. + Gebruikers van &os; 7.X dienen de volgende documentatie met deze + wijzigingen te lezen. + + Gebruiker PPP @@ -325,7 +337,7 @@ 1 default: 2 set log Phase Chat LCP IPCP CCP tun command 3 ident user-ppp VERSION (built COMPILATIONDATE) -4 set device /dev/cuad0 +4 set device /dev/cuau0 5 set speed 115200 6 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 5 \ 7 \"\" AT OK-AT-OK ATE1Q0 OK \\dATDT\\T TIMEOUT 40 CONNECT" @@ -386,10 +398,10 @@ Identificeert het apparaat waarmee het modem verbonden is. COM1 is - /dev/cuad0 + /dev/cuau0 en COM2 is - /dev/cuad1. + /dev/cuau1. @@ -755,7 +767,8 @@ van &man.getty.8;. Een alternatief voor getty is mgetty, + url="http://mgetty.greenie.net/">mgetty (van de port + comms/mgetty+sendfax), een betere versie van getty ontworpen voor onder andere inbellijnen. @@ -896,11 +909,11 @@ set debug phase lcp chat set timeout 0 -ttyd0: +ttyu0: set ifaddr 203.14.100.1 203.14.100.20 255.255.255.255 enable proxy -ttyd1: +ttyu1: set ifaddr 203.14.100.1 203.14.100.21 255.255.255.255 enable proxy @@ -911,7 +924,7 @@ De default: sectie wordt altijd geladen. Voor elke inbellijn die ingeschakeld is in /etc/ttys moet een soortgelijke - regel worden gemaakt als die voor ttyd0: + regel worden gemaakt als die voor ttyu0: hierboven. Elke regel moet een uniek IP adres krijgen van uw pool van IP adressen voor dynamische gebruikers. @@ -969,9 +982,9 @@ LCP - Het configureren en compileren van - mgetty met de AUTO_PPP - optie ingeschakeld stelt mgetty in staat + Standaard staat de optie AUTO_PPP in de port + comms/mgetty+sendfax welke + mgetty in staat stelt om de LCP fase van PPP connecties te detecteren en aan de hand daarvan automatisch een ppp shell te creeëren. Echter, de standaard login procedure vindt in deze mode @@ -979,10 +992,8 @@ authenticeren door middel van PAP of CHAP. De volgende sectie gaat er vanuit dat u succesvol - een versie van mgetty met de - AUTO_PPP optie (v0.99beta of - later) heeft geconfigureerd, gecompileerd en - geïnstalleerd. + de port comms/mgetty+sendfax + op uw systeem heeft gecompileerd en geïnstalleerd. Zorg ervoor dat uw /usr/local/etc/mgetty+sendfax/login.config @@ -1442,6 +1453,10 @@ Het opzetten van kernel PPP + + Deze sectie geldt en is alleen geldig voor &os; 7.X. + + PPP @@ -1952,6 +1967,18 @@ troubleshooten + + Met ingang van &os; 8.0 vervangt het stuurprogramma + &man.uart.4; het stuurprogramma &man.sio.4;. Apparaatknooppunten voor + seriële poorten zijn hernoemd van + /dev/cuadN naar + /dev/cuauN en van + /dev/ttydN naar + /dev/ttyuN. + Gebruikers van &os; 7.X zullen de documentatie met deze + veranderingen moeten lezen. + + Deze sectie behandelt een paar problemen die kunnen optreden wanneer PPP wordt gebruikt over een modemverbinding. Bijvoorbeeld, misschien moet u exact weten wat de prompt is @@ -1972,27 +1999,27 @@ de volgende regel in uw kernelinstellingenbestand op te nemen: - device sio + device uart - Het apparaat sio is al in de kernel + Het apparaat uart is al in de kernel GENERIC opgenomen, dus zijn er in dit geval geen extra stappen nodig. Controleer de resultaten van het commando dmesg voor het modemapparaat door middel van: - &prompt.root; dmesg | grep sio + &prompt.root; dmesg | grep uart U zou enige informatie moeten ontvangen over de - sio apparaten. Deze bevinden zich op + uart apparaten. Deze bevinden zich op de COM-poorten die we nodig hebben. Als uw modem zich gedraagt als een standaard seriële poort zou u deze moeten vinden - als zijnde sio1 of + als zijnde uart1 of COM2. Als dat klopt hoeft u de kernel niet opnieuw te bouwen. Wanneer u de sio-apparaten controleert - en het modem is op sio1 te vinden of als + en het modem is op uart1 te vinden of als COM2 als u zich onder &ms-dos; bevindt, dan is uw modemapparaat - /dev/cuad1. + /dev/cuau1. @@ -2014,10 +2041,10 @@ We hebben nu ppp gestart. - ppp ON example> set device /dev/cuad1 + ppp ON example> set device /dev/cuau1 We stellen ons modem in, in dit geval is dat - cuad1. + cuau1. ppp ON example> set speed 115200 @@ -2037,7 +2064,7 @@ Wissel naar terminal mode zodat we handmatig het modem kunnen bedienen. - deflink: Entering terminal mode on /dev/cuad1 + deflink: Entering terminal mode on /dev/cuau1 type '~h' for help at @@ -2687,6 +2714,10 @@ SLIP + + Deze sectie geldt en is alleen geldig voor &os; 7.X. + + Het opzetten van een SLIP cliënt @@ -3435,7 +3466,7 @@ -