From owner-p4-projects@FreeBSD.ORG Sun Aug 7 14:47:46 2011 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 04776106566B; Sun, 7 Aug 2011 14:47: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 BB90F1065670 for ; Sun, 7 Aug 2011 14:47: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 A97F28FC13 for ; Sun, 7 Aug 2011 14:47: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 p77EljA0038118 for ; Sun, 7 Aug 2011 14:47:45 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id p77EljU3038115 for perforce@freebsd.org; Sun, 7 Aug 2011 14:47:45 GMT (envelope-from rene@FreeBSD.org) Date: Sun, 7 Aug 2011 14:47:45 GMT Message-Id: <201108071447.p77EljU3038115@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 197315 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, 07 Aug 2011 14:47:46 -0000 http://p4web.freebsd.org/@@197315?ac=10 Change 197315 by rene@rene_acer on 2011/08/07 14:47:23 IFC Affected files ... .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/desktop/chapter.sgml#24 integrate Differences ... ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/desktop/chapter.sgml#24 (text+ko) ==== @@ -1,6 +1,6 @@ From owner-p4-projects@FreeBSD.ORG Sun Aug 7 15:07:30 2011 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6AA9B106566C; Sun, 7 Aug 2011 15:07:30 +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 218F9106564A for ; Sun, 7 Aug 2011 15:07:30 +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 0ED6E8FC08 for ; Sun, 7 Aug 2011 15:07:30 +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 p77F7Tm7041790 for ; Sun, 7 Aug 2011 15:07:29 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id p77F7TKL041787 for perforce@freebsd.org; Sun, 7 Aug 2011 15:07:29 GMT (envelope-from rene@FreeBSD.org) Date: Sun, 7 Aug 2011 15:07:29 GMT Message-Id: <201108071507.p77F7TKL041787@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 197316 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, 07 Aug 2011 15:07:30 -0000 http://p4web.freebsd.org/@@197316?ac=10 Change 197316 by rene@rene_acer on 2011/08/07 15:06:29 MFen handbook/desktop 1.107 -> 1.110 Affected files ... .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/desktop/chapter.sgml#36 edit Differences ... ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/desktop/chapter.sgml#36 (text+ko) ==== @@ -4,7 +4,7 @@ $FreeBSD: doc/nl_NL.ISO8859-1/books/handbook/desktop/chapter.sgml,v 1.30 2011/07/30 10:28:14 rene Exp $ %SOURCE% en_US.ISO8859-1/books/handbook/desktop/chapter.sgml - %SRCID% 1.107 + %SRCID% 1.110 --> @@ -213,11 +213,6 @@ &prompt.root; pkg_add -r firefox36 - Als u Firefox 3.5 wilt draaien, gebruik - dan: - - &prompt.root; pkg_add -r firefox35 - De Portscollectie kan ook gebruikt worden als u liever vanuit de broncode installeert. @@ -226,9 +221,7 @@ Voor Firefox 3.6 dient firefox in het vorige commando vervangen te - worden door firefox36. Voor - Firefox 3.5 gebruikt u - firefox35. + worden door firefox36. @@ -240,80 +233,6 @@ is. - Afhankelijk van de versie van Firefox - die gebruikt wordt zijn de volgende stappen benodigd: - - - - Voor Firefox 3.5 - - De &os; Foundation heeft een licentie overeenkomst met Sun - Microsystems om &os; binaries te distribueren voor de Java - Runtime Environment (&jre;) en voor de Java Development kit - (&jdk;). Binaire pakketten voor &os; zijn beschikbaar op de - - &os; Foundation website. - - Om &java; ondersteuning toe te voegen aan - Firefox moet als allereerste de port - java/javavmwrapper - geïnstalleerd worden. Download daarna het - Diablo &jre; pakket van , - en installeer deze met &man.pkg.add.1;. - - - De bovenstaande site levert geen binaire pakketten voor - &os; 8.X. Het is echter - mogelijk om de pakketten voor - &os; 7.X te gebruiken. - Hiervoor moet simpelweg de - misc/compat7x - geïnstalleerd worden voordat het pakket wordt - geïnstalleerd. - - Als alternatief kan Diablo &jre; - (evenals Diablo &jdk;) - geïnstalleerd worden door gebruik te maken van de Ports - Collectie (de relevante ports zijn - java/diablo-jre16 en - java/diablo-jdk16). - Het installeren via de Ports vereist het handmatig downloaden - van de bron bestanden vanwege licentie perikelen. Specifieke - download instructructies worden gegeven wanneer het - make install - commando wordt ingegeven. - - - Start nu de browser en voer in de adresbalk - about:plugins in en druk op - Enter. Een pagina met geïnstalleerde - plugins wordt nu getoond; de &java; plugin zou hier nu tussen - moeten staan. Als dit niet het geval is, dient elke gebruiker het - volgende commando te draaien: - - &prompt.user; ln -s /usr/local/diablo-jre1.6.0/plugin/i386/ns7/libjavaplugin_oji.so \ - $HOME/.mozilla/plugins/ - - Of als u het pakket Diablo &jdk; heeft - geïnstalleerd: - - &prompt.user; ln -s /usr/local/diablo-jdk1.6.0/jre/plugin/i386/ns7/libjavaplugin_oji.so \ - $HOME/.mozilla/plugins/ - - Start daarna de browser opnieuw. - - - De bovenstaande commando's gaan ervan uit dat u de &arch.i386; - architectuur draait, pakketten voor &arch.amd64; zijn ook - beschikbaar. - - - - - Voor Firefox 3.6 en 5.0<anchor id="moz-java-plugin-5"> - Installeer OpenJDK 6 vanuit de Ports Collectie door het volgende typen: @@ -329,18 +248,18 @@ Zorg ervoor dat de standaard configuratieopties voor beide ports zijn geselecteerd. - Elke gebruiker moet het volgende commando uitvoeren: - - &prompt.user; ln -s /usr/local/lib/IcedTeaPlugin.so \ - $HOME/.mozilla/plugins/ - Start de browser en voer about:plugins in de locatie balk en druk op Enter. Er zal een pagina gepresenteerd worden die de geïnstalleerde plugins toont; de &java; plugin zal nu getoond moeten worden. - - + + Als de browser de plugin niet kan vinden, dient elke gebruiker + het volgende commando uit te voeren en de browser opnieuw te + starten: + + &prompt.user; ln -s /usr/local/lib/IcedTeaPlugin.so \ + $HOME/.mozilla/plugins/ @@ -501,7 +420,7 @@ Enter. Er zou een lijst moeten verschijnen met alle huidig beschikbare plugins. - Volg de instructies voor + Volg de instructies voor Firefox om de &java; plugin te installeren. From owner-p4-projects@FreeBSD.ORG Sun Aug 7 19:49:12 2011 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 35346106566C; Sun, 7 Aug 2011 19:49:12 +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 EBF92106564A for ; Sun, 7 Aug 2011 19:49:11 +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 D99B78FC13 for ; Sun, 7 Aug 2011 19:49:11 +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 p77JnBSC097333 for ; Sun, 7 Aug 2011 19:49:11 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id p77JnB58097330 for perforce@freebsd.org; Sun, 7 Aug 2011 19:49:11 GMT (envelope-from rene@FreeBSD.org) Date: Sun, 7 Aug 2011 19:49:11 GMT Message-Id: <201108071949.p77JnB58097330@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 197326 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, 07 Aug 2011 19:49:12 -0000 http://p4web.freebsd.org/@@197326?ac=10 Change 197326 by rene@rene_acer on 2011/08/07 19:48:09 MFen the website: - Makefile 1.147 -> 1.148 - administration.sgml 1.43 -> 1.44 - privacy.sgml (new) -> 1.1 - navibar.l10n.ent 1.33 -> 1.34 - where.sgml 1.108 -> 1.111 Affected files ... .. //depot/projects/docproj_nl/www/nl/Makefile#16 edit .. //depot/projects/docproj_nl/www/nl/administration.sgml#33 edit .. //depot/projects/docproj_nl/www/nl/privacy.sgml#1 add .. //depot/projects/docproj_nl/www/nl/share/sgml/navibar.l10n.ent#20 edit .. //depot/projects/docproj_nl/www/nl/where.sgml#27 edit Differences ... ==== //depot/projects/docproj_nl/www/nl/Makefile#16 (text+ko) ==== @@ -1,6 +1,6 @@ # $FreeBSD: www/nl/Makefile,v 1.4 2011/06/12 20:36:07 rene Exp $ # %SOURCE% en/Makefile -# %SRCID% 1.147 +# %SRCID% 1.148 .if exists(Makefile.conf) .include "Makefile.conf" @@ -21,6 +21,7 @@ DOCS+= internet.sgml DOCS+= logo.sgml DOCS+= mailto.sgml +DOCS+= privacy.sgml DOCS+= publish.sgml DOCS+= relnotes.sgml DOCS+= send-pr.sgml @@ -58,7 +59,7 @@ #SUBDIR+= docproj #SUBDIR+= docs #SUBDIR+= donations -SUBDIR+= events +#SUBDIR+= events #SUBDIR+= gnome #SUBDIR+= handbook #SUBDIR+= internal @@ -67,7 +68,7 @@ #SUBDIR+= kse #SUBDIR+= marketing #SUBDIR+= multimedia -SUBDIR+= news +#SUBDIR+= news #SUBDIR+= platforms #SUBDIR+= portmgr #SUBDIR+= projects ==== //depot/projects/docproj_nl/www/nl/administration.sgml#33 (text+ko) ==== @@ -7,7 +7,7 @@ &header; @@ -507,6 +507,7 @@ ==== //depot/projects/docproj_nl/www/nl/share/sgml/navibar.l10n.ent#20 (text+ko) ==== @@ -1,6 +1,6 @@ @@ -25,6 +25,7 @@
  • Logo
  • Donaties
  • Wettelijke mededelingen
  • +
  • Privacybeleid
  • '> ]]> ==== //depot/projects/docproj_nl/www/nl/where.sgml#27 (text+ko) ==== @@ -6,7 +6,7 @@ ]> &header; @@ -120,28 +120,12 @@ [Distributie] [ISO] - pc98 [Distributie] [ISO] - sparc64 @@ -187,10 +171,7 @@ &os; &betarel.current;-&betarel.vers; - - [Bekijk] + [Bekijk] @@ -218,6 +199,12 @@ + powerpc64 + [Distributie] + [ISO] + + + sparc64 [Distributie] [ISO] @@ -239,9 +226,7 @@ &os; &betarel2.current;-&betarel2.vers; - [Bekijk] @@ -259,8 +244,8 @@ ia64 - [Distributie] - [ISO] + [Distributie] + [ISO] @@ -271,8 +256,8 @@ powerpc - [Distributie] - [ISO] + [Distributie] + [ISO] From owner-p4-projects@FreeBSD.ORG Mon Aug 8 08:44:04 2011 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0F2021065675; Mon, 8 Aug 2011 08:44:04 +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 BEC8C106566C for ; Mon, 8 Aug 2011 08:44:03 +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 A6C118FC0A for ; Mon, 8 Aug 2011 08:44:03 +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 p788i3bk066581 for ; Mon, 8 Aug 2011 08:44:03 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id p788i367066578 for perforce@freebsd.org; Mon, 8 Aug 2011 08:44:03 GMT (envelope-from rene@FreeBSD.org) Date: Mon, 8 Aug 2011 08:44:03 GMT Message-Id: <201108080844.p788i367066578@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 197348 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, 08 Aug 2011 08:44:04 -0000 http://p4web.freebsd.org/@@197348?ac=10 Change 197348 by rene@rene_acer on 2011/08/08 08:43:13 privacy.sgml: Use 'koekje' instead of 'cookie', just like the Lynx browser. Affected files ... .. //depot/projects/docproj_nl/www/nl/privacy.sgml#2 edit Differences ... ==== //depot/projects/docproj_nl/www/nl/privacy.sgml#2 (text+ko) ==== @@ -48,14 +48,14 @@ naar de publieke mailinglijsten wordt als publiekelijk beschouwd en zal voor iedereen op het web beschikbaar zijn.

    -

    Deze website gebruikt een cookie om layoutvoorkeuren voor individuele +

    Deze website gebruikt een koekje om layoutvoorkeuren voor individuele gebruikers op te slaan en om anonieme verkeersinformatie bij te houden. - Een cookie is een klein tekstbestand aangeboden door de webserver dat - door uw webbrowser op uw computer kan worden opgeslagen. Cookies kunnen + Een koekje is een klein tekstbestand aangeboden door de webserver dat + door uw webbrowser op uw computer kan worden opgeslagen. Koekjes kunnen niet worden gebruikt om programma's te draaien of om virussen op uw - computer te plaatsen. Cookies worden uniek aan u toegekend en kunnen - alleen door een Webserver worden gelezen in het domein dat het cookie - aan u verstuurde. U kunt het gebruik van cookies weigeren door de + computer te plaatsen. Koekjes worden uniek aan u toegekend en kunnen + alleen door een Webserver worden gelezen in het domein dat het koekje + aan u verstuurde. U kunt het gebruik van koekjes weigeren door de juiste instellingen in uw browser te selecteren, maar denk eraan dat dit tot gevolg kan hebben dat u niet de volledige functionaliteit van deze of andere websites kan gebruiken.

    From owner-p4-projects@FreeBSD.ORG Mon Aug 8 13:02:01 2011 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 0A1C5106567A; Mon, 8 Aug 2011 13:02:01 +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 A83D61065678 for ; Mon, 8 Aug 2011 13:02:00 +0000 (UTC) (envelope-from ilya@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 94D858FC14 for ; Mon, 8 Aug 2011 13:02:00 +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 p78D203M026086 for ; Mon, 8 Aug 2011 13:02:00 GMT (envelope-from ilya@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id p78D20Wc026083 for perforce@freebsd.org; Mon, 8 Aug 2011 13:02:00 GMT (envelope-from ilya@FreeBSD.org) Date: Mon, 8 Aug 2011 13:02:00 GMT Message-Id: <201108081302.p78D20Wc026083@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to ilya@FreeBSD.org using -f From: Ilya Putsikau To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 197356 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, 08 Aug 2011 13:02:01 -0000 http://p4web.freebsd.org/@@197356?ac=10 Change 197356 by ilya@ilya_triton2011 on 2011/08/08 13:01:12 Change version to 0.4.4 Fix memory leak in fuse_read_directbackend Make options per file system, check global sysctl values first Add helper functions to track operations implemented by daemon Add workround for broken io Close directory filehandles in vnop_close() Fixes for broken file systems like smbnetfs Affected files ... .. //depot/projects/soc2011/ilya_fuse/fuse/fuse_internal.c#2 edit .. //depot/projects/soc2011/ilya_fuse/fuse/fuse_io.c#3 edit .. //depot/projects/soc2011/ilya_fuse/fuse/fuse_ipc.h#3 edit .. //depot/projects/soc2011/ilya_fuse/fuse/fuse_node.c#3 edit .. //depot/projects/soc2011/ilya_fuse/fuse/fuse_node.h#3 edit .. //depot/projects/soc2011/ilya_fuse/fuse/fuse_version.h#3 edit .. //depot/projects/soc2011/ilya_fuse/fuse/fuse_vfsops.c#2 edit .. //depot/projects/soc2011/ilya_fuse/fuse/fuse_vnops.c#4 edit .. //depot/projects/soc2011/ilya_fuse/mount_fusefs/mount_fusefs.c#3 edit Differences ... ==== //depot/projects/soc2011/ilya_fuse/fuse/fuse_internal.c#2 (text+ko) ==== @@ -106,7 +106,7 @@ #endif } - if (fuse_get_mpdata(mp)->dataflags & FSESS_NOACCESS) { + if (!fsess_isimpl(mp, FUSE_ACCESS)) { // Let the kernel handle this. return 0; } @@ -146,7 +146,7 @@ fdisp_destroy(&fdi); if (err == ENOSYS) { - fuse_get_mpdata(mp)->dataflags |= FSESS_NOACCESS; + fsess_set_notimpl(mp, FUSE_ACCESS); err = 0; } @@ -161,8 +161,7 @@ fuse_trace_printf_func(); if (tick->tk_aw_ohead.error == ENOSYS) { - tick->tk_data->dataflags |= (fticket_opcode(tick) == FUSE_FSYNC) ? - FSESS_NOFSYNC : FSESS_NOFSYNCDIR; + fsess_set_notimpl(tick->tk_data->mp, fticket_opcode(tick)); } return 0; ==== //depot/projects/soc2011/ilya_fuse/fuse/fuse_io.c#3 (text+ko) ==== @@ -79,7 +79,7 @@ * we hardwire it into the file's private data (similarly to Linux, * btw.). */ - directio = (ioflag & IO_DIRECT) || !fuse_vnode_cache_enable(vp); + directio = (ioflag & IO_DIRECT) || !fsess_opt_datacache(vnode_mount(vp)); switch (uio->uio_rw) { case UIO_READ: @@ -246,13 +246,12 @@ if ((err = uiomove(fdi.answ, MIN(fri->size, fdi.iosize), uio))) break; - if (fdi.iosize < fri->size) - break; + if (fdi.iosize < fri->size) + break; } +out: fdisp_destroy(&fdi); - -out: return (err); } @@ -594,7 +593,10 @@ uiop->uio_offset = ((off_t)bp->b_blkno) * biosize; error = fuse_read_directbackend(vp, uiop, cred, fufh); - if (!error && uiop->uio_resid) { + if ((!error && uiop->uio_resid) || + (fsess_opt_brokenio(vnode_mount(vp)) && error == EIO && + uiop->uio_offset < fvdat->filesize && fvdat->filesize > 0 && + uiop->uio_offset >= fvdat->cached_attrs.va_size)) { /* * If we had a short read with no error, we must have * hit a file hole. We should zero-fill the remainder. @@ -606,6 +608,14 @@ int nread = bp->b_bcount - uiop->uio_resid; int left = uiop->uio_resid; + if (error != 0) { + printf("FUSE: Fix broken io: offset %ju, resid %zd, " + "file size %ju/%ju\n", (uintmax_t)uiop->uio_offset, + uiop->uio_resid, fvdat->filesize, + fvdat->cached_attrs.va_size); + error = 0; + } + if (left > 0) bzero((char *)bp->b_data + nread, left); uiop->uio_resid = 0; ==== //depot/projects/soc2011/ilya_fuse/fuse/fuse_ipc.h#3 (text+ko) ==== @@ -151,25 +151,28 @@ struct selinfo ks_rsel; int daemon_timeout; + uint64_t notimpl; }; #define FSESS_DEAD 0x0001 // session is to be closed #define FSESS_OPENED 0x0002 // session device has been opened -#define FSESS_NOFSYNC 0x0004 // daemon doesn't implement fsync -#define FSESS_NOFSYNCDIR 0x0008 // daemon doesn't implement fsyncdir -#define FSESS_NOACCESS 0x0010 // daemon doesn't implement access -#define FSESS_NOCREATE 0x0020 // daemon doesn't implement create -#define FSESS_INITED 0x0040 // session has been inited -#define FSESS_DAEMON_CAN_SPY 0x0080 // let non-owners access this fs +#define FSESS_INITED 0x0004 // session has been inited +#define FSESS_DAEMON_CAN_SPY 0x0010 // let non-owners access this fs // (and being observed by the daemon) -#define FSESS_NEGLECT_SHARES 0x0100 // presence of secondary mount is not - // considered as "fs is busy" -#define FSESS_PRIVATE 0x0200 // don't allow secondary mounts -#define FSESS_PUSH_SYMLINKS_IN 0x0400 // prefix absolute symlinks with mp -#define FSESS_DEFAULT_PERMISSIONS 0x0800 // kernel does permission checking -#define FSESS_NO_ATTRCACHE 0x1000 // no attribute caching -#define FSESS_NO_READAHEAD 0x2000 // no readaheads -#define FSESS_NO_UBC 0x4000 // no caching +#define FSESS_PUSH_SYMLINKS_IN 0x0020 // prefix absolute symlinks with mp +#define FSESS_DEFAULT_PERMISSIONS 0x0040 // kernel does permission checking +#define FSESS_NO_ATTRCACHE 0x0080 // no attribute caching +#define FSESS_NO_READAHEAD 0x0100 // no readaheads +#define FSESS_NO_DATACACHE 0x0200 // disable buffer cache +#define FSESS_NO_NAMECACHE 0x0400 // disable name cache +#define FSESS_NO_MMAP 0x0800 // disable mmap +#define FSESS_BROKENIO 0x1000 // fix broken io + +extern int fuse_data_cache_enable; +extern int fuse_data_cache_invalidate; +extern int fuse_mmap_enable; +extern int fuse_sync_resize; +extern int fuse_fix_broken_io; static __inline__ struct fuse_data * @@ -185,6 +188,49 @@ return mp->mnt_data; } +static __inline int +fsess_isimpl(struct mount *mp, int opcode) +{ + struct fuse_data *data = fuse_get_mpdata(mp); + + return (data->notimpl & (1ULL << opcode)) == 0; + +} +static __inline void +fsess_set_notimpl(struct mount *mp, int opcode) +{ + struct fuse_data *data = fuse_get_mpdata(mp); + + data->notimpl |= (1ULL << opcode); +} + +static __inline int +fsess_opt_datacache(struct mount *mp) +{ + struct fuse_data *data = fuse_get_mpdata(mp); + + return (fuse_data_cache_enable || + (data->dataflags & FSESS_NO_DATACACHE) == 0); +} + +static __inline int +fsess_opt_mmap(struct mount *mp) +{ + struct fuse_data *data = fuse_get_mpdata(mp); + + if (!(fuse_mmap_enable && fuse_data_cache_enable)) + return 0; + return ((data->dataflags & (FSESS_NO_DATACACHE | FSESS_NO_MMAP)) == 0); +} + +static __inline int +fsess_opt_brokenio(struct mount *mp) +{ + struct fuse_data *data = fuse_get_mpdata(mp); + + return (fuse_fix_broken_io || (data->dataflags & FSESS_BROKENIO)); +} + static __inline__ void fuse_ms_push(struct fuse_ticket *ftick) ==== //depot/projects/soc2011/ilya_fuse/fuse/fuse_node.c#3 (text+ko) ==== @@ -63,6 +63,10 @@ SYSCTL_INT(_vfs_fuse, OID_AUTO, sync_resize, CTLFLAG_RW, &fuse_sync_resize, 0, ""); +int fuse_fix_broken_io = 0; +SYSCTL_INT(_vfs_fuse, OID_AUTO, fix_broken_io, CTLFLAG_RW, + &fuse_fix_broken_io, 0, ""); + static void fuse_vnode_init(struct vnode *vp, struct fuse_vnode_data *fvdat, uint64_t nodeid, enum vtype vtyp) ==== //depot/projects/soc2011/ilya_fuse/fuse/fuse_node.h#3 (text+ko) ==== @@ -47,10 +47,6 @@ #define FUSE_NULL_ID 0 extern struct vop_vector fuse_vnops; -extern int fuse_data_cache_enable; -extern int fuse_data_cache_invalidate; -extern int fuse_mmap_enable; -extern int fuse_sync_resize; static __inline__ void @@ -61,18 +57,6 @@ } } -static __inline int -fuse_vnode_cache_enable(struct vnode *vp) -{ - return (fuse_data_cache_enable); -} - -static __inline int -fuse_vnode_mmap_enable(struct vnode *vp) -{ - return (fuse_mmap_enable && fuse_data_cache_enable); -} - static __inline void fuse_vnode_setparent(struct vnode *vp, struct vnode *dvp) { ==== //depot/projects/soc2011/ilya_fuse/fuse/fuse_version.h#3 (text+ko) ==== @@ -1,3 +1,3 @@ #ifndef FUSE_FREEBSD_VERSION -#define FUSE_FREEBSD_VERSION "0.4.3" +#define FUSE_FREEBSD_VERSION "0.4.4" #endif ==== //depot/projects/soc2011/ilya_fuse/fuse/fuse_vfsops.c#2 (text+ko) ==== @@ -193,16 +193,15 @@ * With the help of underscored options the mount program * can inform us from the flags it sets by default */ - FUSE_FLAGOPT(private, FSESS_PRIVATE); - FUSE_FLAGOPT(neglect_shares, FSESS_NEGLECT_SHARES); FUSE_FLAGOPT(allow_other, FSESS_DAEMON_CAN_SPY); FUSE_FLAGOPT(push_symlinks_in, FSESS_PUSH_SYMLINKS_IN); FUSE_FLAGOPT(default_permissions, FSESS_DEFAULT_PERMISSIONS); -#ifdef XXXIP -#if FUSE_HAS_DESTROY - FUSE_FLAGOPT(sync_unmount, FSESS_SYNC_UNMOUNT); -#endif -#endif + FUSE_FLAGOPT(no_attrcache, FSESS_NO_ATTRCACHE); + FUSE_FLAGOPT(no_readahed, FSESS_NO_READAHEAD); + FUSE_FLAGOPT(no_datacache, FSESS_NO_DATACACHE); + FUSE_FLAGOPT(no_namecache, FSESS_NO_NAMECACHE); + FUSE_FLAGOPT(no_mmap, FSESS_NO_MMAP); + FUSE_FLAGOPT(brokenio, FSESS_BROKENIO); if (vfs_scanopt(opts, "max_read=", "%u", &max_read) == 1) max_read_set = 1; ==== //depot/projects/soc2011/ilya_fuse/fuse/fuse_vnops.c#4 (text+ko) ==== @@ -208,7 +208,6 @@ struct vnode *vp = ap->a_vp; struct ucred *cred = ap->a_cred; int fflag = ap->a_fflag; - int isdir = (vnode_isdir(vp)) ? 1 : 0; fufh_type_t fufh_type; fuse_trace_printf_vnop(); @@ -217,15 +216,18 @@ return 0; } + if (vnode_isdir(vp)) { + if (fuse_filehandle_valid(vp, FUFH_RDONLY)) { + fuse_filehandle_close(vp, FUFH_RDONLY, NULL, cred); + } + return 0; + } + if (fflag & IO_NDELAY) { return 0; } - if (isdir) { - fufh_type = FUFH_RDONLY; - } else { - fufh_type = fuse_filehandle_xlate_from_fflags(fflag); - } + fufh_type = fuse_filehandle_xlate_from_fflags(fflag); if (!fuse_filehandle_valid(vp, fufh_type)) { int i; @@ -284,15 +286,14 @@ bzero(&fdi, sizeof(fdi)); // XXX: Will we ever want devices? - if ((vap->va_type != VREG) || - fuse_get_mpdata(mp)->dataflags & FSESS_NOCREATE) { + if ((vap->va_type != VREG) || !fsess_isimpl(mp, FUSE_CREATE)) { goto good_old; } debug_printf("parent nid = %ju, mode = %x\n", (uintmax_t)parentnid, mode); fdisp_init(fdip, sizeof(*foi) + cnp->cn_namelen + 1); - if (fuse_get_mpdata(vnode_mount(dvp))->dataflags & FSESS_NOCREATE) { + if (!fsess_isimpl(mp, FUSE_CREATE)) { debug_printf("eh, daemon doesn't implement create?\n"); goto good_old; } @@ -311,7 +312,7 @@ if (err == ENOSYS) { debug_printf("create: got ENOSYS from daemon\n"); - fuse_get_mpdata(vnode_mount(dvp))->dataflags |= FSESS_NOCREATE; + fsess_set_notimpl(mp, FUSE_CREATE); fdisp_destroy(fdip); goto good_old; } else if (err) { @@ -421,8 +422,8 @@ if ((err = vop_stdfsync(ap))) return err; - if (!(fuse_get_mpdata(vnode_mount(vp))->dataflags & - (vnode_vtype(vp) == VDIR ? FSESS_NOFSYNCDIR : FSESS_NOFSYNC))) { + if (!fsess_isimpl(vnode_mount(vp), + (vnode_vtype(vp) == VDIR ? FUSE_FSYNCDIR : FUSE_FSYNC))) { goto out; } @@ -1830,7 +1831,7 @@ pages = ap->a_m; count = ap->a_count; - if (!fuse_vnode_mmap_enable(vp)) { + if (!fsess_opt_mmap(vnode_mount(vp))) { DEBUG("called on non-cacheable vnode??\n"); return (VM_PAGER_ERROR); } @@ -2014,7 +2015,7 @@ npages = btoc(count); offset = IDX_TO_OFF(pages[0]->pindex); - if (!fuse_vnode_mmap_enable(vp)) { + if (!fsess_opt_mmap(vnode_mount(vp))) { DEBUG("called on non-cacheable vnode??\n"); } ==== //depot/projects/soc2011/ilya_fuse/mount_fusefs/mount_fusefs.c#3 (text+ko) ==== @@ -77,6 +77,13 @@ { "large_read", 0, 0x00, 1 }, /* "nonempty", just the first two chars are stripped off during parsing */ { "nempty", 0, 0x00, 1 }, + { "no_attrcache", 0, 0x00, 1 }, + { "no_readahed", 0, 0x00, 1 }, + { "no_datacache", 0, 0x00, 1 }, + { "no_namecache", 0, 0x00, 1 }, + { "no_mmap", 0, 0x00, 1 }, + { "brokenio", 0, 0x00, 1 }, + MOPT_STDOPTS, MOPT_END }; From owner-p4-projects@FreeBSD.ORG Mon Aug 8 20:16:19 2011 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 973ED106566B; Mon, 8 Aug 2011 20:16: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 58E38106566C for ; Mon, 8 Aug 2011 20:16:19 +0000 (UTC) (envelope-from jceel@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 44AD98FC13 for ; Mon, 8 Aug 2011 20:16:19 +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 p78KGJfd029567 for ; Mon, 8 Aug 2011 20:16:19 GMT (envelope-from jceel@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id p78KGIcw029564 for perforce@freebsd.org; Mon, 8 Aug 2011 20:16:18 GMT (envelope-from jceel@freebsd.org) Date: Mon, 8 Aug 2011 20:16:18 GMT Message-Id: <201108082016.p78KGIcw029564@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to jceel@freebsd.org using -f From: Jakub Wojciech Klama To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 197378 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, 08 Aug 2011 20:16:19 -0000 http://p4web.freebsd.org/@@197378?ac=10 Change 197378 by jceel@jceel_cyclone on 2011/08/08 20:16:06 IFC @197377 Affected files ... .. //depot/projects/soc2011/jceel_lpc/contrib/gdb/FREEBSD-diffs#2 integrate .. //depot/projects/soc2011/jceel_lpc/contrib/gdb/gdb/sparc64fbsd-tdep.c#2 integrate .. //depot/projects/soc2011/jceel_lpc/etc/Makefile#2 integrate .. //depot/projects/soc2011/jceel_lpc/etc/nsswitch.conf#2 integrate .. //depot/projects/soc2011/jceel_lpc/gnu/usr.bin/gdb/arch/sparc64/Makefile#2 integrate .. //depot/projects/soc2011/jceel_lpc/gnu/usr.bin/gdb/arch/sparc64/init.c#2 integrate .. //depot/projects/soc2011/jceel_lpc/lib/libarchive/archive_read.c#2 integrate .. //depot/projects/soc2011/jceel_lpc/lib/libarchive/archive_read_support_compression_uu.c#3 integrate .. //depot/projects/soc2011/jceel_lpc/lib/libarchive/archive_read_support_format_iso9660.c#2 integrate .. //depot/projects/soc2011/jceel_lpc/lib/libarchive/archive_read_support_format_mtree.c#3 integrate .. //depot/projects/soc2011/jceel_lpc/lib/libarchive/archive_write_open_fd.c#2 integrate .. //depot/projects/soc2011/jceel_lpc/lib/libarchive/archive_write_open_file.c#2 integrate .. //depot/projects/soc2011/jceel_lpc/lib/libarchive/archive_write_open_filename.c#2 integrate .. //depot/projects/soc2011/jceel_lpc/lib/libarchive/archive_write_set_compression_xz.c#2 integrate .. //depot/projects/soc2011/jceel_lpc/lib/libarchive/archive_write_set_format_zip.c#2 integrate .. //depot/projects/soc2011/jceel_lpc/lib/libarchive/test/Makefile#3 integrate .. //depot/projects/soc2011/jceel_lpc/lib/libarchive/test/test_open_failure.c#1 branch .. //depot/projects/soc2011/jceel_lpc/lib/libarchive/test/test_read_format_mtree.c#2 integrate .. //depot/projects/soc2011/jceel_lpc/lib/libarchive/test/test_write_compress_lzma.c#2 integrate .. //depot/projects/soc2011/jceel_lpc/lib/libarchive/test/test_write_compress_xz.c#2 integrate .. //depot/projects/soc2011/jceel_lpc/lib/libc/net/ethers.3#2 integrate .. //depot/projects/soc2011/jceel_lpc/lib/libkvm/kvm_ia64.c#2 integrate .. //depot/projects/soc2011/jceel_lpc/lib/libthread_db/arch/amd64/libpthread_md.c#2 integrate .. //depot/projects/soc2011/jceel_lpc/lib/libthread_db/arch/sparc64/libpthread_md.c#2 integrate .. //depot/projects/soc2011/jceel_lpc/lib/libthread_db/libthr_db.c#2 integrate .. //depot/projects/soc2011/jceel_lpc/release/Makefile.sysinstall#2 integrate .. //depot/projects/soc2011/jceel_lpc/sbin/rcorder/rcorder.8#3 integrate .. //depot/projects/soc2011/jceel_lpc/share/man/man8/diskless.8#2 integrate .. //depot/projects/soc2011/jceel_lpc/sys/amd64/conf/GENERIC#3 integrate .. //depot/projects/soc2011/jceel_lpc/sys/arm/conf/AVILA#2 integrate .. //depot/projects/soc2011/jceel_lpc/sys/arm/conf/BWCT#2 integrate .. //depot/projects/soc2011/jceel_lpc/sys/arm/conf/CAMBRIA#3 integrate .. //depot/projects/soc2011/jceel_lpc/sys/arm/conf/CNS11XXNAS#2 integrate .. //depot/projects/soc2011/jceel_lpc/sys/arm/conf/CRB#2 integrate .. //depot/projects/soc2011/jceel_lpc/sys/arm/conf/DB-78XXX#2 integrate .. //depot/projects/soc2011/jceel_lpc/sys/arm/conf/DB-88F5XXX#2 integrate .. //depot/projects/soc2011/jceel_lpc/sys/arm/conf/DB-88F6XXX#2 integrate .. //depot/projects/soc2011/jceel_lpc/sys/arm/conf/DOCKSTAR#2 integrate .. //depot/projects/soc2011/jceel_lpc/sys/arm/conf/EP80219#2 integrate .. //depot/projects/soc2011/jceel_lpc/sys/arm/conf/GUMSTIX#2 integrate .. //depot/projects/soc2011/jceel_lpc/sys/arm/conf/HL200#2 integrate .. //depot/projects/soc2011/jceel_lpc/sys/arm/conf/HL201#2 integrate .. //depot/projects/soc2011/jceel_lpc/sys/arm/conf/IQ31244#2 integrate .. //depot/projects/soc2011/jceel_lpc/sys/arm/conf/KB920X#2 integrate .. //depot/projects/soc2011/jceel_lpc/sys/arm/conf/LN2410SBC#2 integrate .. //depot/projects/soc2011/jceel_lpc/sys/arm/conf/NSLU#2 integrate .. //depot/projects/soc2011/jceel_lpc/sys/arm/conf/QILA9G20#2 integrate .. //depot/projects/soc2011/jceel_lpc/sys/arm/conf/SAM9G20EK#2 integrate .. //depot/projects/soc2011/jceel_lpc/sys/arm/conf/SHEEVAPLUG#2 integrate .. //depot/projects/soc2011/jceel_lpc/sys/arm/conf/SIMICS#2 integrate .. //depot/projects/soc2011/jceel_lpc/sys/arm/conf/TS7800#2 integrate .. //depot/projects/soc2011/jceel_lpc/sys/dev/ath/ath_dfs/null/dfs_null.c#2 integrate .. //depot/projects/soc2011/jceel_lpc/sys/dev/ath/ath_hal/ah.c#3 integrate .. //depot/projects/soc2011/jceel_lpc/sys/dev/ath/ath_hal/ah.h#3 integrate .. //depot/projects/soc2011/jceel_lpc/sys/dev/ath/ath_hal/ah_internal.h#3 integrate .. //depot/projects/soc2011/jceel_lpc/sys/dev/ath/ath_hal/ah_regdomain.c#3 integrate .. //depot/projects/soc2011/jceel_lpc/sys/dev/ath/ath_hal/ar5212/ar5212.h#3 integrate .. //depot/projects/soc2011/jceel_lpc/sys/dev/ath/ath_hal/ar5212/ar5212_attach.c#3 integrate .. //depot/projects/soc2011/jceel_lpc/sys/dev/ath/ath_hal/ar5212/ar5212_misc.c#3 integrate .. //depot/projects/soc2011/jceel_lpc/sys/dev/ath/ath_hal/ar5416/ar5416.h#3 integrate .. //depot/projects/soc2011/jceel_lpc/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c#3 integrate .. //depot/projects/soc2011/jceel_lpc/sys/dev/ath/ath_hal/ar5416/ar5416_misc.c#3 integrate .. //depot/projects/soc2011/jceel_lpc/sys/dev/ath/ath_hal/ar9002/ar9280_attach.c#3 integrate .. //depot/projects/soc2011/jceel_lpc/sys/dev/ath/ath_hal/ar9002/ar9285_attach.c#3 integrate .. //depot/projects/soc2011/jceel_lpc/sys/dev/ath/ath_hal/ar9002/ar9287_attach.c#3 integrate .. //depot/projects/soc2011/jceel_lpc/sys/dev/ath/if_ath.c#3 integrate .. //depot/projects/soc2011/jceel_lpc/sys/dev/ath/if_athdfs.h#2 integrate .. //depot/projects/soc2011/jceel_lpc/sys/dev/ath/if_athvar.h#3 integrate .. //depot/projects/soc2011/jceel_lpc/sys/i386/conf/GENERIC#3 integrate .. //depot/projects/soc2011/jceel_lpc/sys/i386/conf/XBOX#2 integrate .. //depot/projects/soc2011/jceel_lpc/sys/i386/conf/XEN#2 integrate .. //depot/projects/soc2011/jceel_lpc/sys/ia64/ia64/dump_machdep.c#2 integrate .. //depot/projects/soc2011/jceel_lpc/sys/ia64/ia64/pmap.c#3 integrate .. //depot/projects/soc2011/jceel_lpc/sys/kern/vfs_mount.c#3 integrate .. //depot/projects/soc2011/jceel_lpc/sys/mips/cavium/asm_octeon.S#2 integrate .. //depot/projects/soc2011/jceel_lpc/sys/mips/cavium/octeon_mp.c#3 integrate .. //depot/projects/soc2011/jceel_lpc/sys/net/if_llatbl.h#2 integrate .. //depot/projects/soc2011/jceel_lpc/sys/net/route.c#3 integrate .. //depot/projects/soc2011/jceel_lpc/sys/net80211/ieee80211_scan_sta.c#2 integrate .. //depot/projects/soc2011/jceel_lpc/sys/netinet/in.c#2 integrate .. //depot/projects/soc2011/jceel_lpc/sys/netinet/raw_ip.c#2 integrate .. //depot/projects/soc2011/jceel_lpc/sys/netinet6/in6.c#2 integrate .. //depot/projects/soc2011/jceel_lpc/sys/pc98/conf/GENERIC#3 integrate .. //depot/projects/soc2011/jceel_lpc/sys/sparc64/conf/GENERIC#3 integrate .. //depot/projects/soc2011/jceel_lpc/sys/sparc64/sparc64/dump_machdep.c#2 integrate .. //depot/projects/soc2011/jceel_lpc/sys/sparc64/sparc64/mp_machdep.c#3 integrate .. //depot/projects/soc2011/jceel_lpc/sys/vm/vm_contig.c#2 integrate .. //depot/projects/soc2011/jceel_lpc/tools/regression/netinet/tcpdrop/tcpdrop.c#3 integrate .. //depot/projects/soc2011/jceel_lpc/tools/regression/security/cap_test/Makefile#2 integrate .. //depot/projects/soc2011/jceel_lpc/tools/regression/security/cap_test/cap_test.c#2 integrate .. //depot/projects/soc2011/jceel_lpc/tools/regression/security/cap_test/cap_test.h#2 integrate .. //depot/projects/soc2011/jceel_lpc/tools/regression/security/cap_test/cap_test.t#1 branch .. //depot/projects/soc2011/jceel_lpc/tools/regression/security/cap_test/cap_test_capabilities.c#1 branch .. //depot/projects/soc2011/jceel_lpc/tools/regression/security/cap_test/cap_test_capmode.c#2 integrate .. //depot/projects/soc2011/jceel_lpc/tools/regression/security/cap_test/cap_test_fcntl.c#1 branch .. //depot/projects/soc2011/jceel_lpc/tools/regression/security/cap_test/cap_test_sysctl.c#2 integrate .. //depot/projects/soc2011/jceel_lpc/usr.bin/ar/write.c#2 integrate .. //depot/projects/soc2011/jceel_lpc/usr.bin/catman/catman.c#3 integrate .. //depot/projects/soc2011/jceel_lpc/usr.bin/man/man.1#3 integrate .. //depot/projects/soc2011/jceel_lpc/usr.bin/xlint/lint1/tree.c#2 integrate .. //depot/projects/soc2011/jceel_lpc/usr.sbin/bsdinstall/scripts/mirrorselect#2 integrate .. //depot/projects/soc2011/jceel_lpc/usr.sbin/makefs/cd9660.c#2 integrate .. //depot/projects/soc2011/jceel_lpc/usr.sbin/pmcstat/pmcstat.c#3 integrate .. //depot/projects/soc2011/jceel_lpc/usr.sbin/pmcstat/pmcstat.h#2 integrate .. //depot/projects/soc2011/jceel_lpc/usr.sbin/pmcstat/pmcstat_log.c#2 integrate .. //depot/projects/soc2011/jceel_lpc/usr.sbin/service/service.8#2 integrate Differences ... ==== //depot/projects/soc2011/jceel_lpc/contrib/gdb/FREEBSD-diffs#2 (text+ko) ==== @@ -927,3 +927,39 @@ +#include "ia64/tm-ia64.h" + +#endif /* TM_FBSD_H */ +Index: gdb/sparc64fbsd-tdep.c +=================================================================== +--- gdb/sparc64fbsd-tdep.c (revision 223862) ++++ gdb/sparc64fbsd-tdep.c (working copy) +@@ -64,6 +64,31 @@ sparc64fbsd_supply_fpregset (const struct regset * + { + sparc64_supply_fpregset (regcache, regnum, fpregs); + } ++ ++void ++supply_gregset (const void *gregs) ++{ ++ sparc64_supply_gregset (&sparc64fbsd_gregset, current_regcache, -1, gregs); ++} ++ ++void ++supply_fpregset (const void *fpregs) ++{ ++ sparc64_supply_fpregset (current_regcache, -1, fpregs); ++} ++ ++void ++fill_gregset (void *gregs, int regnum) ++{ ++ sparc64_collect_gregset (&sparc64fbsd_gregset, current_regcache, regnum, ++ gregs); ++} ++ ++void ++fill_fpregset (void *fpregs, int regnum) ++{ ++ sparc64_collect_fpregset (current_regcache, regnum, fpregs); ++} + + + /* Signal trampolines. */ ==== //depot/projects/soc2011/jceel_lpc/contrib/gdb/gdb/sparc64fbsd-tdep.c#2 (text+ko) ==== @@ -64,6 +64,31 @@ { sparc64_supply_fpregset (regcache, regnum, fpregs); } + +void +supply_gregset (const void *gregs) +{ + sparc64_supply_gregset (&sparc64fbsd_gregset, current_regcache, -1, gregs); +} + +void +supply_fpregset (const void *fpregs) +{ + sparc64_supply_fpregset (current_regcache, -1, fpregs); +} + +void +fill_gregset (void *gregs, int regnum) +{ + sparc64_collect_gregset (&sparc64fbsd_gregset, current_regcache, regnum, + gregs); +} + +void +fill_fpregset (void *fpregs, int regnum) +{ + sparc64_collect_fpregset (current_regcache, regnum, fpregs); +} /* Signal trampolines. */ ==== //depot/projects/soc2011/jceel_lpc/etc/Makefile#2 (text+ko) ==== @@ -1,5 +1,5 @@ # from: @(#)Makefile 5.11 (Berkeley) 5/21/91 -# $FreeBSD: src/etc/Makefile,v 1.387 2011/02/22 08:13:49 uqs Exp $ +# $FreeBSD: src/etc/Makefile,v 1.389 2011/08/06 09:16:53 dougb Exp $ .include ==== //depot/projects/soc2011/jceel_lpc/etc/nsswitch.conf#2 (text) ==== @@ -1,15 +1,23 @@ # -# nsswitch.conf(5) - name service switch configuration file -# $FreeBSD: src/etc/nsswitch.conf,v 1.1 2006/05/03 15:14:47 ume Exp $ +# $FreeBSD: src/etc/nsswitch.conf,v 1.2 2011/08/06 09:16:53 dougb Exp $ +# +# To enable NIS the commented entries should replace their uncommented +# equivalents. See nsswitch.conf(5) for more information. # -group: compat -group_compat: nis +group: files +#group_compat: nis +#group: compat + +passwd: files +#passwd_compat: nis +#passwd: compat + +services: files +#services_compat: nis +#services: compat + hosts: files dns networks: files -passwd: compat -passwd_compat: nis shells: files -services: compat -services_compat: nis protocols: files rpc: files ==== //depot/projects/soc2011/jceel_lpc/gnu/usr.bin/gdb/arch/sparc64/Makefile#2 (text+ko) ==== @@ -1,6 +1,7 @@ -# $FreeBSD: src/gnu/usr.bin/gdb/arch/sparc64/Makefile,v 1.3 2004/12/05 06:59:01 marcel Exp $ +# $FreeBSD: src/gnu/usr.bin/gdb/arch/sparc64/Makefile,v 1.4 2011/08/06 17:53:45 marius Exp $ .if !defined(GDB_CROSS_DEBUGGER) +LIBSRCS+= fbsd-threads.c LIBSRCS+= solib.c solib-legacy.c solib-svr4.c LIBSRCS+= sparc-nat.c sparc64-nat.c sparc64fbsd-nat.c .endif ==== //depot/projects/soc2011/jceel_lpc/gnu/usr.bin/gdb/arch/sparc64/init.c#2 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/gnu/usr.bin/gdb/arch/sparc64/init.c,v 1.2 2004/12/05 06:59:01 marcel Exp $ */ +/* $FreeBSD: src/gnu/usr.bin/gdb/arch/sparc64/init.c,v 1.3 2011/08/06 17:53:45 marius Exp $ */ /* Do not modify this file. */ /* It is created automatically by the Makefile. */ @@ -11,6 +11,7 @@ extern initialize_file_ftype _initialize_ser_hardwire; extern initialize_file_ftype _initialize_ser_pipe; extern initialize_file_ftype _initialize_ser_tcp; +extern initialize_file_ftype _initialize_thread_db; extern initialize_file_ftype _initialize_sparc64fbsd_nat; extern initialize_file_ftype _initialize_sparc64_nat; extern initialize_file_ftype _initialize_sparc_nat; @@ -124,6 +125,7 @@ _initialize_ser_pipe (); _initialize_ser_tcp (); #ifndef CROSS_DEBUGGER + _initialize_thread_db (); _initialize_sparc64fbsd_nat (); _initialize_sparc64_nat (); _initialize_sparc_nat (); ==== //depot/projects/soc2011/jceel_lpc/lib/libarchive/archive_read.c#2 (text+ko) ==== @@ -32,7 +32,7 @@ */ #include "archive_platform.h" -__FBSDID("$FreeBSD: src/lib/libarchive/archive_read.c,v 1.56 2010/11/05 05:11:54 kientzle Exp $"); +__FBSDID("$FreeBSD: src/lib/libarchive/archive_read.c,v 1.57 2011/08/07 08:42:36 mm Exp $"); #ifdef HAVE_ERRNO_H #include @@ -377,6 +377,12 @@ /* If no bidder, we're done. */ if (best_bidder == NULL) { + /* Verify the final pipelin by asking it for some data. */ + __archive_read_filter_ahead(a->filter, 1, &avail); + if (avail < 0) { + cleanup_filters(a); + return (ARCHIVE_FATAL); + } a->archive.compression_name = a->filter->name; a->archive.compression_code = a->filter->code; return (ARCHIVE_OK); @@ -389,18 +395,12 @@ filter->bidder = best_bidder; filter->archive = a; filter->upstream = a->filter; - r = (best_bidder->init)(filter); + a->filter = filter; + r = (best_bidder->init)(a->filter); if (r != ARCHIVE_OK) { - free(filter); + cleanup_filters(a); return (r); } - a->filter = filter; - /* Verify the filter by asking it for some data. */ - __archive_read_filter_ahead(filter, 1, &avail); - if (avail < 0) { - cleanup_filters(a); - return (ARCHIVE_FATAL); - } } } ==== //depot/projects/soc2011/jceel_lpc/lib/libarchive/archive_read_support_compression_uu.c#3 (text+ko) ==== @@ -24,7 +24,7 @@ */ #include "archive_platform.h" -__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_support_compression_uu.c,v 1.2 2011/07/17 21:27:38 mm Exp $"); +__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_support_compression_uu.c,v 1.3 2011/08/07 08:42:36 mm Exp $"); #ifdef HAVE_ERRNO_H #include @@ -381,7 +381,17 @@ unsigned char *ptr; size_t newsize; - newsize = uudecode->in_allocated << 1; + /* + * Calculate a new buffer size for in_buff. + * Increase its value until it has enough size we need. + */ + newsize = uudecode->in_allocated; + do { + if (newsize < IN_BUFF_SIZE*32) + newsize <<= 1; + else + newsize += IN_BUFF_SIZE; + } while (size > newsize); ptr = malloc(newsize); if (ptr == NULL || newsize < uudecode->in_allocated) { ==== //depot/projects/soc2011/jceel_lpc/lib/libarchive/archive_read_support_format_iso9660.c#2 (text+ko) ==== @@ -26,7 +26,7 @@ */ #include "archive_platform.h" -__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_support_format_iso9660.c,v 1.40 2010/01/23 07:55:53 kientzle Exp $"); +__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_support_format_iso9660.c,v 1.41 2011/08/07 08:42:36 mm Exp $"); #ifdef HAVE_ERRNO_H #include @@ -709,16 +709,18 @@ /* Location of Occurrence of Type L Path Table must be * available location, - * > SYSTEM_AREA_BLOCK(16) + 2 and < Volume Space Size. */ + * >= SYSTEM_AREA_BLOCK(16) + 2 and < Volume Space Size. */ location = archive_le32dec(h+SVD_type_L_path_table_offset); - if (location <= SYSTEM_AREA_BLOCK+2 || location >= volume_block) + if (location < SYSTEM_AREA_BLOCK+2 || location >= volume_block) return (0); - /* Location of Occurrence of Type M Path Table must be - * available location, - * > SYSTEM_AREA_BLOCK(16) + 2 and < Volume Space Size. */ + /* The Type M Path Table must be at a valid location (WinISO + * and probably other programs omit this, so we allow zero) + * + * >= SYSTEM_AREA_BLOCK(16) + 2 and < Volume Space Size. */ location = archive_be32dec(h+SVD_type_M_path_table_offset); - if (location <= SYSTEM_AREA_BLOCK+2 || location >= volume_block) + if ((location > 0 && location < SYSTEM_AREA_BLOCK+2) + || location >= volume_block) return (0); /* Read Root Directory Record in Volume Descriptor. */ @@ -781,16 +783,17 @@ /* Location of Occurrence of Type L Path Table must be * available location, - * > SYSTEM_AREA_BLOCK(16) + 2 and < Volume Space Size. */ + * >= SYSTEM_AREA_BLOCK(16) + 2 and < Volume Space Size. */ location = archive_le32dec(h+PVD_type_1_path_table_offset); - if (location <= SYSTEM_AREA_BLOCK+2 || location >= volume_block) + if (location < SYSTEM_AREA_BLOCK+2 || location >= volume_block) return (0); /* Location of Occurrence of Type M Path Table must be * available location, - * > SYSTEM_AREA_BLOCK(16) + 2 and < Volume Space Size. */ + * >= SYSTEM_AREA_BLOCK(16) + 2 and < Volume Space Size. */ location = archive_be32dec(h+PVD_type_m_path_table_offset); - if (location <= SYSTEM_AREA_BLOCK+2 || location >= volume_block) + if ((location > 0 && location < SYSTEM_AREA_BLOCK+2) + || location >= volume_block) return (0); /* Reserved field must be 0. */ @@ -862,19 +865,24 @@ * available location, * > SYSTEM_AREA_BLOCK(16) + 2 and < Volume Space Size. */ location = archive_le32dec(h+PVD_type_1_path_table_offset); - if (location <= SYSTEM_AREA_BLOCK+2 || location >= volume_block) + if (location < SYSTEM_AREA_BLOCK+2 || location >= volume_block) return (0); - /* Location of Occurrence of Type M Path Table must be - * available location, - * > SYSTEM_AREA_BLOCK(16) + 2 and < Volume Space Size. */ + /* The Type M Path Table must also be at a valid location + * (although ECMA 119 requires a Type M Path Table, WinISO and + * probably other programs omit it, so we permit a zero here) + * + * >= SYSTEM_AREA_BLOCK(16) + 2 and < Volume Space Size. */ location = archive_be32dec(h+PVD_type_m_path_table_offset); - if (location <= SYSTEM_AREA_BLOCK+2 || location >= volume_block) + if ((location > 0 && location < SYSTEM_AREA_BLOCK+2) + || location >= volume_block) return (0); /* Reserved field must be 0. */ + /* FreeBSD: makefs erroneously created images with 0x20 */ for (i = 0; i < PVD_reserved4_size; ++i) - if (h[PVD_reserved4_offset + i] != 0) + if (h[PVD_reserved4_offset + i] != 0 && + h[PVD_reserved4_offset + i] != 32) return (0); /* Reserved field must be 0. */ @@ -1677,6 +1685,7 @@ const unsigned char *rr_start, *rr_end; const unsigned char *p; size_t dr_len; + uint64_t fsize; int32_t location; int flags; @@ -1685,6 +1694,7 @@ dr_len = (size_t)isodirrec[DR_length_offset]; name_len = (size_t)isodirrec[DR_name_len_offset]; location = archive_le32dec(isodirrec + DR_extent_offset); + fsize = toi(isodirrec + DR_size_offset, DR_size_size); /* Sanity check that dr_len needs at least 34. */ if (dr_len < 34) { archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, @@ -1703,7 +1713,10 @@ * link or file size is zero. As far as I know latest mkisofs * do that. */ - if (location >= iso9660->volume_block) { + if (location > 0 && + (location + ((fsize + iso9660->logical_block_size -1) + / iso9660->logical_block_size)) > + (unsigned int)iso9660->volume_block) { archive_set_error(&a->archive, ARCHIVE_ERRNO_MISC, "Invalid location of extent of file"); return (NULL); @@ -1719,7 +1732,7 @@ memset(file, 0, sizeof(*file)); file->parent = parent; file->offset = iso9660->logical_block_size * (uint64_t)location; - file->size = toi(isodirrec + DR_size_offset, DR_size_size); + file->size = fsize; file->mtime = isodate7(isodirrec + DR_date_offset); file->ctime = file->atime = file->mtime; ==== //depot/projects/soc2011/jceel_lpc/lib/libarchive/archive_read_support_format_mtree.c#3 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include "archive_platform.h" -__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_support_format_mtree.c,v 1.18 2011/07/17 21:27:38 mm Exp $"); +__FBSDID("$FreeBSD: src/lib/libarchive/archive_read_support_format_mtree.c,v 1.19 2011/08/07 08:42:36 mm Exp $"); #ifdef HAVE_SYS_STAT_H #include @@ -525,6 +525,7 @@ /* Initialize reasonable defaults. */ mtree->filetype = AE_IFREG; archive_entry_set_size(entry, 0); + archive_string_empty(&mtree->contents_name); /* Parse options from this line. */ parsed_kws = 0; @@ -613,9 +614,8 @@ } /* - * If there is a contents file on disk, use that size; - * otherwise leave it as-is (it might have been set from - * the mtree size= keyword). + * Check for a mismatch between the type in the specification and + * the type of the contents object on disk. */ if (st != NULL) { mismatched_type = 0; @@ -660,6 +660,11 @@ } } + /* + * If there is a contents file on disk, pick some of the metadata + * from that file. For most of these, we only set it from the contents + * if it wasn't already parsed from the specification. + */ if (st != NULL) { if ((parsed_kws & MTREE_HAS_DEVICE) == 0 && (archive_entry_filetype(entry) == AE_IFCHR || ==== //depot/projects/soc2011/jceel_lpc/lib/libarchive/archive_write_open_fd.c#2 (text+ko) ==== @@ -24,7 +24,7 @@ */ #include "archive_platform.h" -__FBSDID("$FreeBSD: src/lib/libarchive/archive_write_open_fd.c,v 1.10 2009/12/28 02:28:44 kientzle Exp $"); +__FBSDID("$FreeBSD: src/lib/libarchive/archive_write_open_fd.c,v 1.11 2011/08/07 20:24:32 mm Exp $"); #ifdef HAVE_SYS_STAT_H #include @@ -51,7 +51,6 @@ #include "archive.h" struct write_fd_data { - off_t offset; int fd; }; @@ -122,12 +121,16 @@ ssize_t bytesWritten; mine = (struct write_fd_data *)client_data; - bytesWritten = write(mine->fd, buff, length); - if (bytesWritten <= 0) { - archive_set_error(a, errno, "Write error"); - return (-1); + for (;;) { + bytesWritten = write(mine->fd, buff, length); + if (bytesWritten <= 0) { + if (errno == EINTR) + continue; + archive_set_error(a, errno, "Write error"); + return (-1); + } + return (bytesWritten); } - return (bytesWritten); } static int ==== //depot/projects/soc2011/jceel_lpc/lib/libarchive/archive_write_open_file.c#2 (text+ko) ==== @@ -24,7 +24,7 @@ */ #include "archive_platform.h" -__FBSDID("$FreeBSD: src/lib/libarchive/archive_write_open_file.c,v 1.19 2007/01/09 08:05:56 kientzle Exp $"); +__FBSDID("$FreeBSD: src/lib/libarchive/archive_write_open_file.c,v 1.20 2011/08/07 20:24:32 mm Exp $"); #ifdef HAVE_SYS_STAT_H #include @@ -86,12 +86,16 @@ size_t bytesWritten; mine = client_data; - bytesWritten = fwrite(buff, 1, length, mine->f); - if (bytesWritten < length) { - archive_set_error(a, errno, "Write error"); - return (-1); + for (;;) { + bytesWritten = fwrite(buff, 1, length, mine->f); + if (bytesWritten <= 0) { + if (errno == EINTR) + continue; + archive_set_error(a, errno, "Write error"); + return (-1); + } + return (bytesWritten); } - return (bytesWritten); } static int ==== //depot/projects/soc2011/jceel_lpc/lib/libarchive/archive_write_open_filename.c#2 (text+ko) ==== @@ -24,7 +24,7 @@ */ #include "archive_platform.h" -__FBSDID("$FreeBSD: src/lib/libarchive/archive_write_open_filename.c,v 1.21 2009/04/17 00:39:35 kientzle Exp $"); +__FBSDID("$FreeBSD: src/lib/libarchive/archive_write_open_filename.c,v 1.22 2011/08/07 20:24:32 mm Exp $"); #ifdef HAVE_SYS_STAT_H #include @@ -142,12 +142,16 @@ ssize_t bytesWritten; mine = (struct write_file_data *)client_data; - bytesWritten = write(mine->fd, buff, length); - if (bytesWritten <= 0) { - archive_set_error(a, errno, "Write error"); - return (-1); + for (;;) { + bytesWritten = write(mine->fd, buff, length); + if (bytesWritten <= 0) { + if (errno == EINTR) + continue; + archive_set_error(a, errno, "Write error"); + return (-1); + } + return (bytesWritten); } - return (bytesWritten); } static int ==== //depot/projects/soc2011/jceel_lpc/lib/libarchive/archive_write_set_compression_xz.c#2 (text+ko) ==== @@ -26,7 +26,7 @@ #include "archive_platform.h" -__FBSDID("$FreeBSD: src/lib/libarchive/archive_write_set_compression_xz.c,v 1.2 2009/12/28 03:28:21 kientzle Exp $"); +__FBSDID("$FreeBSD: src/lib/libarchive/archive_write_set_compression_xz.c,v 1.3 2011/08/07 08:42:36 mm Exp $"); #ifdef HAVE_ERRNO_H #include @@ -421,8 +421,8 @@ archive_set_error(&a->archive, ENOMEM, "lzma compression error: " "%ju MiB would have been needed", - (lzma_memusage(&(state->stream)) + 1024 * 1024 -1) - / (1024 * 1024)); + (uintmax_t)((lzma_memusage(&(state->stream)) + 1024 * 1024 -1) + / (1024 * 1024))); return (ARCHIVE_FATAL); default: /* Any other return value indicates an error. */ ==== //depot/projects/soc2011/jceel_lpc/lib/libarchive/archive_write_set_format_zip.c#2 (text+ko) ==== @@ -47,7 +47,7 @@ */ #include "archive_platform.h" -__FBSDID("$FreeBSD: src/lib/libarchive/archive_write_set_format_zip.c,v 1.2 2010/01/23 07:52:44 kientzle Exp $"); +__FBSDID("$FreeBSD: src/lib/libarchive/archive_write_set_format_zip.c,v 1.3 2011/08/07 08:42:36 mm Exp $"); #ifdef HAVE_ERRNO_H #include @@ -502,6 +502,9 @@ int entries; int ret; + if (a->compressor.write == NULL) + return (ARCHIVE_OK); + zip = a->format_data; l = zip->central_directory; ==== //depot/projects/soc2011/jceel_lpc/lib/libarchive/test/Makefile#3 (text+ko) ==== @@ -1,4 +1,4 @@ -# $FreeBSD: src/lib/libarchive/test/Makefile,v 1.43 2011/07/17 21:27:38 mm Exp $ +# $FreeBSD: src/lib/libarchive/test/Makefile,v 1.44 2011/08/07 08:42:36 mm Exp $ # Where to find the libarchive sources LA_SRCDIR=${.CURDIR}/.. @@ -25,6 +25,7 @@ test_fuzz.c \ test_link_resolver.c \ test_open_fd.c \ + test_open_failure.c \ test_open_file.c \ test_open_filename.c \ test_pax_filename_encoding.c \ ==== //depot/projects/soc2011/jceel_lpc/lib/libarchive/test/test_read_format_mtree.c#2 (text+ko) ==== @@ -23,7 +23,7 @@ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ #include "test.h" -__FBSDID("$FreeBSD: src/lib/libarchive/test/test_read_format_mtree.c,v 1.7 2009/12/30 05:59:21 kientzle Exp $"); +__FBSDID("$FreeBSD: src/lib/libarchive/test/test_read_format_mtree.c,v 1.8 2011/08/07 08:42:36 mm Exp $"); static void test_read_format_mtree1(void) @@ -134,10 +134,53 @@ assertEqualInt(ARCHIVE_OK, archive_read_finish(a)); } +/* + * Reported to libarchive.googlecode.com as Issue 121. + */ +static void +test_read_format_mtree3(void) +{ + static char archive[] = + "#mtree\n" + "a type=file contents=file\n" + "b type=link link=a\n" + "c type=file contents=file\n"; + struct archive_entry *ae; + struct archive *a; + assertMakeDir("mtree3", 0777); + assertChdir("mtree3"); + assertMakeFile("file", 0644, "file contents"); + assert((a = archive_read_new()) != NULL); + assertEqualIntA(a, ARCHIVE_OK, + archive_read_support_compression_all(a)); + assertEqualIntA(a, ARCHIVE_OK, + archive_read_support_format_all(a)); + assertEqualIntA(a, ARCHIVE_OK, + archive_read_open_memory(a, archive, sizeof(archive))); + assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); + assertEqualString(archive_entry_pathname(ae), "a"); + assertEqualInt(archive_entry_filetype(ae), AE_IFREG); + assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); + assertEqualString(archive_entry_pathname(ae), "b"); + assertEqualInt(archive_entry_filetype(ae), AE_IFLNK); + assertEqualIntA(a, ARCHIVE_OK, archive_read_next_header(a, &ae)); + assertEqualString(archive_entry_pathname(ae), "c"); + assertEqualInt(archive_entry_filetype(ae), AE_IFREG); + + assertEqualIntA(a, ARCHIVE_EOF, archive_read_next_header(a, &ae)); + assertEqualInt(ARCHIVE_OK, archive_read_close(a)); + assertEqualInt(ARCHIVE_OK, archive_read_finish(a)); + + assertChdir(".."); +} + + + DEFINE_TEST(test_read_format_mtree) { test_read_format_mtree1(); test_read_format_mtree2(); + test_read_format_mtree3(); } ==== //depot/projects/soc2011/jceel_lpc/lib/libarchive/test/test_write_compress_lzma.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include "test.h" -__FBSDID("$FreeBSD: src/lib/libarchive/test/test_write_compress_lzma.c,v 1.1 2009/04/17 01:06:31 kientzle Exp $"); +__FBSDID("$FreeBSD: src/lib/libarchive/test/test_write_compress_lzma.c,v 1.2 2011/08/07 08:42:36 mm Exp $"); /* * A basic exercise of lzma reading and writing. @@ -185,10 +185,15 @@ archive_write_close(a); assert(0 == archive_write_finish(a)); - /* Level 0 really does result in larger data. */ + /* It would be nice to assert that compression-level=0 produced + * consistently larger/smaller results than the default compression, + * but the results here vary a lot depending on the version of liblzma + * being used. */ + /* failure("Compression-level=0 wrote %d bytes; default wrote %d bytes", (int)used2, (int)used1); assert(used2 > used1); + */ assert((a = archive_read_new()) != NULL); assertA(0 == archive_read_support_format_all(a)); ==== //depot/projects/soc2011/jceel_lpc/lib/libarchive/test/test_write_compress_xz.c#2 (text+ko) ==== @@ -25,7 +25,7 @@ */ #include "test.h" -__FBSDID("$FreeBSD: src/lib/libarchive/test/test_write_compress_xz.c,v 1.1 2009/04/17 01:06:31 kientzle Exp $"); +__FBSDID("$FreeBSD: src/lib/libarchive/test/test_write_compress_xz.c,v 1.2 2011/08/07 08:42:36 mm Exp $"); /* * A basic exercise of xz reading and writing. @@ -193,10 +193,14 @@ archive_write_close(a); assert(0 == archive_write_finish(a)); - /* Level 0 really does result in larger data. */ + /* I would like to assert that compression-level=0 results in + * larger data than the default compression, but that's not true + * for all versions of liblzma. */ + /* failure("Compression-level=0 wrote %d bytes; default wrote %d bytes", (int)used2, (int)used1); assert(used2 > used1); + */ assert((a = archive_read_new()) != NULL); assertA(0 == archive_read_support_format_all(a)); ==== //depot/projects/soc2011/jceel_lpc/lib/libc/net/ethers.3#2 (text+ko) ==== @@ -29,7 +29,7 @@ .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/lib/libc/net/ethers.3,v 1.26 2010/08/28 16:32:01 brucec Exp $ +.\" $FreeBSD: src/lib/libc/net/ethers.3,v 1.27 2011/08/08 03:09:03 hrs Exp $ .\" .Dd October 30, 2007 .Dt ETHERS 3 @@ -68,7 +68,7 @@ These functions operate on ethernet addresses using an .Vt ether_addr structure, which is defined in the header file -.In netinet/if_ether.h : +.In net/ethernet.h : .Bd -literal -offset indent /* * The number of bytes in an ethernet (MAC) address. ==== //depot/projects/soc2011/jceel_lpc/lib/libkvm/kvm_ia64.c#2 (text+ko) ==== @@ -1,4 +1,4 @@ -/* $FreeBSD: src/lib/libkvm/kvm_ia64.c,v 1.9 2011/01/23 11:08:28 uqs Exp $ */ +/* $FreeBSD: src/lib/libkvm/kvm_ia64.c,v 1.10 2011/08/06 15:59:54 marcel Exp $ */ /* $NetBSD: kvm_alpha.c,v 1.7.2.1 1997/11/02 20:34:26 mellon Exp $ */ /* @@ -33,6 +33,7 @@ #include #include +#include #include #include @@ -51,11 +52,16 @@ #define KPTE_DIR0_INDEX(va,ps) ((((va)/(ps)) / NKPTEPG(ps)) / NKPTEDIR(ps)) #define KPTE_DIR1_INDEX(va,ps) ((((va)/(ps)) / NKPTEPG(ps)) % NKPTEDIR(ps)) +#define PBVM_BASE 0x9ffc000000000000UL +#define PBVM_PGSZ (64 * 1024) + struct vmstate { void *mmapbase; size_t mmapsize; size_t pagesize; u_long kptdir; + u_long *pbvm_pgtbl; + u_int pbvm_pgtblsz; }; /* @@ -110,11 +116,28 @@ return (pgsz - ((size_t)pa & (pgsz - 1))); } +static ssize_t +_kvm_read_phys(kvm_t *kd, uint64_t pa, void *buf, size_t bufsz) +{ + off_t ofs; + size_t sz; + + sz = _kvm_pa2off(kd, pa, &ofs, 0); + if (sz < bufsz) + return ((ssize_t)sz); + + if (lseek(kd->pmfd, ofs, 0) == -1) + return (-1); + return (read(kd->pmfd, buf, bufsz)); +} + void _kvm_freevtop(kvm_t *kd) { struct vmstate *vm = kd->vmst; + if (vm->pbvm_pgtbl != NULL) + free(vm->pbvm_pgtbl); if (vm->mmapbase != NULL) munmap(vm->mmapbase, vm->mmapsize); free(vm); @@ -124,10 +147,12 @@ int _kvm_initvtop(kvm_t *kd) { + struct bootinfo bi; struct nlist nl[2]; uint64_t va; Elf64_Ehdr *ehdr; size_t hdrsz; + ssize_t sz; kd->vmst = (struct vmstate *)_kvm_malloc(kd, sizeof(*kd->vmst)); if (kd->vmst == NULL) { @@ -146,6 +171,42 @@ return (-1); /* + * Load the PBVM page table. We need this to resolve PBVM addresses. + * The PBVM page table is obtained from the bootinfo structure, of + * which the physical address is given to us in e_entry. If e_entry + * is 0, then this is assumed to be a pre-PBVM kernel. + */ + if (ehdr->e_entry != 0) { + sz = _kvm_read_phys(kd, ehdr->e_entry, &bi, sizeof(bi)); + if (sz != sizeof(bi)) { + _kvm_err(kd, kd->program, + "cannot read bootinfo from PA %#lx", ehdr->e_entry); + return (-1); + } + if (bi.bi_magic != BOOTINFO_MAGIC) { + _kvm_err(kd, kd->program, "invalid bootinfo"); + return (-1); + } + kd->vmst->pbvm_pgtbl = _kvm_malloc(kd, bi.bi_pbvm_pgtblsz); + if (kd->vmst->pbvm_pgtbl == NULL) { + _kvm_err(kd, kd->program, "cannot allocate page table"); + return (-1); + } + kd->vmst->pbvm_pgtblsz = bi.bi_pbvm_pgtblsz; + sz = _kvm_read_phys(kd, bi.bi_pbvm_pgtbl, kd->vmst->pbvm_pgtbl, + bi.bi_pbvm_pgtblsz); + if (sz != bi.bi_pbvm_pgtblsz) { + _kvm_err(kd, kd->program, + "cannot read page table from PA %#lx", + bi.bi_pbvm_pgtbl); + return (-1); + } + } else { + kd->vmst->pbvm_pgtbl = NULL; + kd->vmst->pbvm_pgtblsz = 0; + } + + /* * At this point we've got enough information to use kvm_read() for * direct mapped (ie region 6 and region 7) address, such as symbol * addresses/values. @@ -174,17 +235,18 @@ } int -_kvm_kvatop(kvm_t *kd, u_long va, off_t *pa) +_kvm_kvatop(kvm_t *kd, u_long va, off_t *ofs) { struct ia64_lpte pte; - uint64_t pgaddr, pt0addr, pt1addr; + uint64_t pa, pgaddr, pt0addr, pt1addr; size_t pgno, pgsz, pt0no, pt1no; if (va >= REGION_BASE(6)) { /* Regions 6 and 7: direct mapped. */ - return (_kvm_pa2off(kd, REGION_ADDR(va), pa, 0)); + pa = REGION_ADDR(va); + return (_kvm_pa2off(kd, pa, ofs, 0)); } else if (va >= REGION_BASE(5)) { - /* Region 5: virtual. */ + /* Region 5: Kernel Virtual Memory. */ va = REGION_ADDR(va); pgsz = kd->vmst->pagesize; pt0no = KPTE_DIR0_INDEX(va, pgsz); @@ -207,12 +269,24 @@ goto fail; if (!(pte.pte & PTE_PRESENT)) goto fail; - va = (pte.pte & PTE_PPN_MASK) + (va & (pgsz - 1)); - return (_kvm_pa2off(kd, va, pa, pgsz)); + pa = (pte.pte & PTE_PPN_MASK) + (va & (pgsz - 1)); + return (_kvm_pa2off(kd, pa, ofs, pgsz)); + } else if (va >= PBVM_BASE) { + /* Region 4: Pre-Boot Virtual Memory (PBVM). */ + va -= PBVM_BASE; + pgsz = PBVM_PGSZ; + pt0no = va / pgsz; + if (pt0no >= (kd->vmst->pbvm_pgtblsz >> 3)) + goto fail; + pt0addr = kd->vmst->pbvm_pgtbl[pt0no]; + if (!(pt0addr & PTE_PRESENT)) + goto fail; + pa = (pt0addr & PTE_PPN_MASK) + va % pgsz; >>> TRUNCATED FOR MAIL (1000 lines) <<< From owner-p4-projects@FreeBSD.ORG Mon Aug 8 20:29:29 2011 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 6C9E81065675; Mon, 8 Aug 2011 20: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 2BFC11065670 for ; Mon, 8 Aug 2011 20:29:29 +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 008228FC17 for ; Mon, 8 Aug 2011 20:29:29 +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 p78KTS4u032181 for ; Mon, 8 Aug 2011 20:29:28 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id p78KTSCK032178 for perforce@freebsd.org; Mon, 8 Aug 2011 20:29:28 GMT (envelope-from rene@FreeBSD.org) Date: Mon, 8 Aug 2011 20:29:28 GMT Message-Id: <201108082029.p78KTSCK032178@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 197379 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, 08 Aug 2011 20:29:29 -0000 http://p4web.freebsd.org/@@197379?ac=10 Change 197379 by rene@rene_acer on 2011/08/08 20:28:56 privacy.sgml: improve wording Affected files ... .. //depot/projects/docproj_nl/www/nl/privacy.sgml#3 edit Differences ... ==== //depot/projects/docproj_nl/www/nl/privacy.sgml#3 (text+ko) ==== @@ -42,9 +42,9 @@ ("IP") adres, type browser en informatie over uw besturingssysteem.

    We slaan informatie zoals uw emailadres, naam, en organisatie of - bedrijf alleen op als u besluit om ons zulke toe te sturen door een + bedrijf alleen op als u besluit om ons zulks toe te sturen door een &os; probleemrapport in te sturen of u te abonneren op een van de &os; - mailinglijsten. Informatie die verstuurd wordt in probleemrapporten of + mailinglijsten. Informatie die wordt verstuurd in probleemrapporten of naar de publieke mailinglijsten wordt als publiekelijk beschouwd en zal voor iedereen op het web beschikbaar zijn.

    @@ -79,17 +79,17 @@ informatie die u geeft. Persoonlijke informatie die we verzamelen wordt opgeslagen op servers die met een wachtwoord zijn beveiligd en beperkt toegankelijk zijn, en we beschermen deze informatie zorgvuldig tegen - verlies of misbruik, en tegen ongeautoriseerde toegang, onthulling, + verlies of misbruik, en tegen ongeautoriseerde toegang, ontsluiting, verandering of vernietiging.

    -

    Wanneer uw informatie kan worden onthuld:

    +

    Wanneer uw informatie kan worden ontsloten:

    Het &os; Project kan persoonlijke informatie ontsluiten indien de wet dit vereist of als in goede trouw wordt gelooft dat een dergelijke actie nodig is om:

    -
    1. te conformeren aan de vereisten der wet of om te voldoen aan het - legale proces geserveerd op Het &os; Project of de Site;
    2. +
      1. te conformeren aan de vereisten der wet of om te voldoen aan + juridische processen geserveerd op Het &os; Project of de Site;
      2. de rechten of eigendommen van Het &os; Project te beschermen en te verdedigen; of
      3. From owner-p4-projects@FreeBSD.ORG Mon Aug 8 20:45:57 2011 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A402A1065679; Mon, 8 Aug 2011 20:45: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 667931065676 for ; Mon, 8 Aug 2011 20:45:57 +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 53EAD8FC1A for ; Mon, 8 Aug 2011 20:45: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 p78Kjv2r037098 for ; Mon, 8 Aug 2011 20:45:57 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id p78KjvmU037095 for perforce@freebsd.org; Mon, 8 Aug 2011 20:45:57 GMT (envelope-from rene@FreeBSD.org) Date: Mon, 8 Aug 2011 20:45:57 GMT Message-Id: <201108082045.p78KjvmU037095@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 197383 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, 08 Aug 2011 20:45:57 -0000 http://p4web.freebsd.org/@@197383?ac=10 Change 197383 by rene@rene_acer on 2011/08/08 20:44:53 IFC Affected files ... .. //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/serialcomms/chapter.sgml#13 integrate .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/desktop/chapter.sgml#37 integrate .. //depot/projects/docproj_nl/www/nl/administration.sgml#34 integrate .. //depot/projects/docproj_nl/www/nl/where.sgml#28 integrate .. //depot/projects/docproj_nl/www/share/sgml/events2011.xml#2 integrate Differences ... ==== //depot/projects/docproj_nl/en_US.ISO8859-1/books/handbook/serialcomms/chapter.sgml#13 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -2857,7 +2857,7 @@ serial console by writing just one line in /boot/loader.conf: - set console="comconsole" + console="comconsole" This will take effect regardless of the settings in the boot block discussed in the previous section. @@ -2868,7 +2868,7 @@ Likewise, you can specify the internal console as: - set console="vidconsole" + console="vidconsole" If you do not set the boot loader environment variable console, the boot loader, and subsequently the ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/desktop/chapter.sgml#37 (text+ko) ==== @@ -1,7 +1,7 @@ @@ -3261,7 +3260,7 @@ één regel naar /boot/loader.conf te schrijven: - set console="comconsole" + console="comconsole" Dit heeft effect ongeacht de instellingen in het opstartblok die in de vorige sectie zijn besproken. @@ -3274,7 +3273,7 @@ Evenzo kan de interne videoconsole worden gespecificeerd met: - set console="vidconsole" + console="vidconsole" Indien de omgevingsvariabele console van de opstartlader niet ingesteld wordt, gebruikt de From owner-p4-projects@FreeBSD.ORG Mon Aug 8 21:28:44 2011 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 16BFF106566C; Mon, 8 Aug 2011 21:28:44 +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 CD0D6106564A for ; Mon, 8 Aug 2011 21:28:43 +0000 (UTC) (envelope-from peter@wemm.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id A1DBB8FC14 for ; Mon, 8 Aug 2011 21:28:43 +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 p78LShOb047077 for ; Mon, 8 Aug 2011 21:28:43 GMT (envelope-from peter@wemm.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id p78LShaO047074 for perforce@freebsd.org; Mon, 8 Aug 2011 21:28:43 GMT (envelope-from peter@wemm.org) Date: Mon, 8 Aug 2011 21:28:43 GMT Message-Id: <201108082128.p78LShaO047074@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to peter@wemm.org using -f From: Peter Wemm To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 197388 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, 08 Aug 2011 21:28:44 -0000 http://p4web.freebsd.org/@@197388?ac=10 Change 197388 by peter@peter_daintree on 2011/08/08 21:28:21 Mark devfs as jail-safe. Affected files ... .. //depot/projects/hammer/sys/fs/devfs/devfs_vfsops.c#26 edit Differences ... ==== //depot/projects/hammer/sys/fs/devfs/devfs_vfsops.c#26 (text+ko) ==== @@ -186,4 +186,4 @@ .vfs_unmount = devfs_unmount, }; -VFS_SET(devfs_vfsops, devfs, VFCF_SYNTHETIC); +VFS_SET(devfs_vfsops, devfs, VFCF_SYNTHETIC | VFCF_JAIL); From owner-p4-projects@FreeBSD.ORG Tue Aug 9 12:40:47 2011 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B896F1065673; Tue, 9 Aug 2011 12:40: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 7ADB21065670 for ; Tue, 9 Aug 2011 12:40:46 +0000 (UTC) (envelope-from cnicutar@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 681938FC08 for ; Tue, 9 Aug 2011 12:40: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 p79CekuF031501 for ; Tue, 9 Aug 2011 12:40:46 GMT (envelope-from cnicutar@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id p79CekDG031497 for perforce@freebsd.org; Tue, 9 Aug 2011 12:40:46 GMT (envelope-from cnicutar@freebsd.org) Date: Tue, 9 Aug 2011 12:40:46 GMT Message-Id: <201108091240.p79CekDG031497@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to cnicutar@freebsd.org using -f From: Catalin Nicutar To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 197422 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, 09 Aug 2011 12:40:47 -0000 http://p4web.freebsd.org/@@197422?ac=10 Change 197422 by cnicutar@cnicutar_cronos on 2011/08/09 12:40:43 Fix inheriting received UTO for accepting sockets. Affected files ... .. //depot/projects/soc2011/cnicutar_tcputo_9/src/sys/netinet/tcp_syncache.c#3 edit Differences ... ==== //depot/projects/soc2011/cnicutar_tcputo_9/src/sys/netinet/tcp_syncache.c#3 (text+ko) ==== @@ -831,10 +831,10 @@ tp->t_flags |= TF_SND_UTO; tp->snd_uto = sc->sc_snd_uto; } - if (sc->sc_flags & SCF_RCV_UTO) { + if (sc->sc_flags & SCF_RCV_UTO) tp->t_flags |= TF_RCV_UTO; - tp->rcv_uto = sc->sc_rcv_uto; - } + /* Regardless of SCF_RCV_UTO. */ + tp->rcv_uto = sc->sc_rcv_uto; } if (sc->sc_flags & SCF_ECN) @@ -1086,11 +1086,10 @@ to->to_flags |= TOF_UTO; } - if (tp->t_flags & TF_RCV_UTO) { - /* Remember received timeout to pass on. */ - rcv_uto_tf = 1; - rcv_uto = tp->rcv_uto; - } + /* Remember received UTO regardless of disposition and clear it. */ + rcv_uto_tf = tp->t_flags & TF_RCV_UTO; + rcv_uto = tp->rcv_uto; + tp->rcv_uto = 0; /* By the time we drop the lock these should no longer be used. */ so = NULL; @@ -1305,11 +1304,10 @@ sc->sc_flags |= SCF_SND_UTO; } - /* Inherit received UTO. */ - if (rcv_uto_tf) { - sc->sc_rcv_uto = rcv_uto; + /* Inherit received UTO, regardless of disposition. */ + if (rcv_uto_tf) sc->sc_flags |= SCF_RCV_UTO; - } + sc->sc_rcv_uto = rcv_uto; if (V_tcp_syncookies) { syncookie_generate(sch, sc, &flowtmp); From owner-p4-projects@FreeBSD.ORG Tue Aug 9 22:33:08 2011 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B2DE6106567D; Tue, 9 Aug 2011 22:33:08 +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 5C60B1065675 for ; Tue, 9 Aug 2011 22:33:08 +0000 (UTC) (envelope-from mjacob@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 49B208FC0C for ; Tue, 9 Aug 2011 22:33:08 +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 p79MX8Za050594 for ; Tue, 9 Aug 2011 22:33:08 GMT (envelope-from mjacob@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id p79MX8qx050591 for perforce@freebsd.org; Tue, 9 Aug 2011 22:33:08 GMT (envelope-from mjacob@freebsd.org) Date: Tue, 9 Aug 2011 22:33:08 GMT Message-Id: <201108092233.p79MX8qx050591@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to mjacob@freebsd.org using -f From: Matt Jacob To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 197444 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, 09 Aug 2011 22:33:09 -0000 http://p4web.freebsd.org/@@197444?ac=10 Change 197444 by mjacob@mjacob-sandbox on 2011/08/09 22:32:23 Do some cleanup so that this SIM can unload too. Handle the case that seems to occur with Phase 10 FW where Gen1 enclosure disks (not the SES) don't attach. Key off of SAS_DISCOVERY_EVENT end and then get SAS extended device config with the NxtHandle option to see who to add. It turns out there a bunch of devices without PHYs filled out, but the ones that are then can actually get attached. Affected files ... .. //depot/projects/mjacob-dev/sys/dev/mpt2sas/mpt2cam.c#5 edit .. //depot/projects/mjacob-dev/sys/dev/mpt2sas/mpt2pci.c#5 edit .. //depot/projects/mjacob-dev/sys/dev/mpt2sas/mpt2sas.c#7 edit .. //depot/projects/mjacob-dev/sys/dev/mpt2sas/mpt2sas.h#8 edit .. //depot/projects/mjacob-dev/sys/modules/mpt2sas/Makefile#1 add Differences ... ==== //depot/projects/mjacob-dev/sys/dev/mpt2sas/mpt2cam.c#5 (text+ko) ==== @@ -191,15 +191,21 @@ } -void +/* + * Should be called locked + */ +int mpt2sas_cam_detach(mpt2sas_t *mpt) { - if (mpt->sim != NULL) { - xpt_free_path(mpt->path); - xpt_bus_deregister(cam_sim_path(mpt->sim)); - cam_sim_free(mpt->sim, TRUE); - mpt->sim = NULL; - } + if (mpt->sim == NULL) + return (ENODEV); + if (mpt->sim->refcount > 2) + return (EBUSY); + xpt_free_path(mpt->path); + xpt_bus_deregister(cam_sim_path(mpt->sim)); + cam_sim_free(mpt->sim, TRUE); + mpt->sim = NULL; + return (0); } /* This routine is used after a system crash to dump core onto the swap device. ==== //depot/projects/mjacob-dev/sys/dev/mpt2sas/mpt2pci.c#5 (text+ko) ==== @@ -203,6 +203,7 @@ if (bootverbose) { mpt->prt_mask |= MP2PRT_INFO; } + mpt->prt_mask = 0x3f; } } @@ -213,13 +214,14 @@ struct sysctl_ctx_list *ctx; struct sysctl_oid *tree; mpt2sas_t *mpt; - int iqd; + int iqd, result; mpt = (mpt2sas_t *)device_get_softc(dev); if (mpt == NULL) { device_printf(dev, "cannot allocate softc\n"); return (ENOMEM); } + result = 0; memset(mpt, 0, sizeof(mpt2sas_t)); mpt->dev = dev; mpt2sas_set_options(mpt); @@ -259,6 +261,7 @@ mpt->pci_mem_reg = bus_alloc_resource(dev, SYS_RES_MEMORY, &mpt->pci_mem_rid, 0, ~0, 0, RF_ACTIVE); if (mpt->pci_mem_reg == NULL) { mpt2sas_prt(mpt, MP2PRT_ERR, "Unable to memory map registers.\n"); + result = ENXIO; goto bad; } else { mpt->pci_mem_st = rman_get_bustag(mpt->pci_mem_reg); @@ -290,6 +293,7 @@ } mpt->pci_irq = bus_alloc_resource_any(dev, SYS_RES_IRQ, &iqd, RF_ACTIVE | RF_SHAREABLE); if (mpt->pci_irq == NULL) { + result = ENXIO; mpt2sas_prt(mpt, MP2PRT_ERR, "could not allocate interrupt\n"); goto bad; } @@ -301,6 +305,7 @@ /* Register the interrupt handler */ if (bus_setup_intr(dev, mpt->pci_irq, MPT2_IFLAGS, NULL, mpt2sas_pci_intr, mpt, &mpt->ih)) { + result = ENXIO; mpt2sas_prt(mpt, MP2PRT_ERR, "could not setup interrupt\n"); goto bad; } @@ -312,7 +317,8 @@ /* Initialize the hardware */ if (mpt->disabled == 0) { - if (mpt2sas_attach(mpt) != 0) { + result = mpt2sas_attach(mpt); + if (result != 0) { goto bad; } } else { @@ -333,7 +339,7 @@ /* * but return zero to preserve unit numbering */ - return (0); + return (result); } static void @@ -390,10 +396,11 @@ { mpt2sas_t *mpt = (mpt2sas_t*)device_get_softc(dev); - if (mpt) { + if (mpt && mpt->disabled == 0) { + int r = mpt2sas_detach(mpt); + if (r) + return (r); mpt2sas_disable_ints(mpt); - mpt2sas_detach(mpt); - mpt2sas_reset(mpt); mpt2sas_mem_free(mpt); mpt2sas_free_bus_resources(mpt); } ==== //depot/projects/mjacob-dev/sys/dev/mpt2sas/mpt2sas.c#7 (text+ko) ==== @@ -210,8 +210,6 @@ mpt->cfg_ExtPageLength = le16toh(m->ExtPageLength); mpt->cfg_ExtPageType = m->ExtPageType; } - } else { - mpt2sas_prt(mpt, MP2PRT_ERR, "%s: MPI2_CONFIG_REPLY IOC STATUS %#x\n", __func__, req->IOCStatus); } } else { mpt2sas_prt(mpt, MP2PRT_ERR, "%s: MPI2_FUNCTION_CONFIG with no reply frame\n", __func__); @@ -339,6 +337,86 @@ } static void +mpt2sas_discovery_change(mpt2sas_t *mpt) +{ + int off, error; + MPI2_CONFIG_REQUEST *rqs; + MPI2_CONFIG_PAGE_HEADER hdr; + MPI2_CONFIG_PAGE_SAS_DEV_0 *sio; + U16 handle, cfglen; + struct topochg *tp; + request_t *req; + + if (mpt2sas_get_cfgbuf(mpt, &off)) { + mpt2sas_prt(mpt, MP2PRT_WARN, "%s: cannot allocate config buffer\n", __func__); + return; + } + error = mpt2sas_read_config_header(mpt, MPI2_CONFIG_EXTPAGETYPE_SAS_DEVICE, 0); + if (error) { + mpt2sas_free_cfgbuf(mpt, off); + return; + } + cfglen = mpt->cfg_ExtPageLength; + hdr = mpt->cfg_hdr; + handle = 0xffff; + for (;;) { + MPT2SAS_GET_REQUEST(mpt, req); + if (req == NULL) { + mpt2sas_free_cfgbuf(mpt, off); + return; + } + req->flags = MPI2_REQ_DESCRIPT_FLAGS_DEFAULT_TYPE; + rqs = MPT2_REQ2RQS(mpt, req); + memset(rqs, 0, sizeof (MPI2_CONFIG_REQUEST)); + rqs->Function = MPI2_FUNCTION_CONFIG; + rqs->Action = MPI2_CONFIG_ACTION_PAGE_READ_CURRENT; + rqs->ExtPageType = MPI2_CONFIG_EXTPAGETYPE_SAS_DEVICE; + rqs->ExtPageLength = htole16(cfglen); + rqs->PageAddress = htole32(MPI2_SAS_DEVICE_PGAD_FORM_GET_NEXT_HANDLE | handle); + rqs->Header = hdr; + mpt2sas_single_sge(&rqs->PageBufferSGE.MpiSimple, mpt->config.paddr + off, cfglen << 2, MPI2_SGE_FLAGS_IOC_TO_HOST|SINGLE_SGE); + memset(&mpt->config.vaddr[off], 0, MPT2_CONFIG_DATA_SIZE(mpt)); + mpt2sas_send_cmd(mpt, req); + error = mpt2sas_wait_req(mpt, req, REQ_STATE_DONE, REQ_STATE_DONE, 1000); + if (error) { + if (error != EIO || mpt->iocsts != MPI2_IOCSTATUS_CONFIG_INVALID_PAGE) { + MPT2SAS_SYNC_ERR_NORET(mpt, error); + } + break; + } + bus_dmamap_sync(mpt->config.dmat, mpt->config.dmap, BUS_DMASYNC_POSTREAD); + sio = (MPI2_CONFIG_PAGE_SAS_DEV_0 *) &mpt->config.vaddr[off]; + mpt2host_sas_dev_page0_convert(dsc); + mpt2sas_prt(mpt, MP2PRT_CONFIG, "%s: DevHandle %x SAS Address 0x%016jx Name 0x%016jx DeviceInfo 0x%08x PhyNum 0x%02x\n", __func__, + sio->DevHandle, (uintmax_t) le64toh(sio->SASAddress), (uintmax_t) le64toh(sio->DeviceName), le32toh(sio->DeviceInfo), + sio->PhyNum); + handle = sio->DevHandle; + if (mpt2_hdl2dev(mpt, handle)) { + continue; + } + TAILQ_FOREACH(tp, &mpt->topo_wait_list, links) { + if (tp->create && tp->hdl == handle) { + break; + } + } + if (tp) { + continue; + } + tp = TAILQ_FIRST(&mpt->topo_free_list); + if (tp == NULL) { + mpt2sas_free_cfgbuf(mpt, off); + return; + } + TAILQ_REMOVE(&mpt->topo_free_list, tp, links); + tp->hdl = handle; + tp->create = 1; + TAILQ_INSERT_TAIL(&mpt->topo_wait_list, tp, links); + } + mpt2sas_free_cfgbuf(mpt, off); + mpt->fabchanged = 0; +} + +static void mpt2sas_topology_change(mpt2sas_t *mpt, MPI2_EVENT_DATA_SAS_TOPOLOGY_CHANGE_LIST *tpl) { static const char *lrstat[16] = { @@ -552,8 +630,16 @@ mpt2sas_prt(mpt, MP2PRT_INFO, "MPI2_EVENT_IS_OPERATION_STATUS\n"); break; case MPI2_EVENT_SAS_DISCOVERY: - mpt2sas_prt(mpt, MP2PRT_CONFIG, "MPI2_EVENT_SAS_DISCOVERY\n"); + { + MPI2_EVENT_DATA_SAS_DISCOVERY *p = (MPI2_EVENT_DATA_SAS_DISCOVERY *)evp->EventData; + mpt2host_sas_discovery_event_convert(p); + mpt2sas_prt(mpt, MP2PRT_CONFIG2, "MPI2_EVENT_SAS_DISCOVERY: Flags=%x ReasonCode=%x PhysicalPort=%x DiscoveryStatus=%x\n", + p->Flags, p->ReasonCode, p->PhysicalPort, p->DiscoveryStatus); + if (p->Flags == MPI2_EVENT_SAS_DISC_DEVICE_CHANGE && p->ReasonCode == MPI2_EVENT_SAS_DISC_RC_COMPLETED) { + mpt->fabchanged = 1; + } break; + } case MPI2_EVENT_SAS_BROADCAST_PRIMITIVE: mpt2sas_prt(mpt, MP2PRT_CONFIG, "MPI2_EVENT_SAS_BROADCAST_PRIMITIVE\n"); break; @@ -1052,6 +1138,11 @@ MPT2_2_HOST32(sio, Reserved2); MPT2_2_HOST32(sio, Reserved3); } + +void mpt2host_sas_discovery_event_convert(MPI2_EVENT_DATA_SAS_DISCOVERY *sp) +{ + MPT2_2_HOST32(sp, DiscoveryStatus); +} #endif /******************************* Discovery and SAS/IOC Config Routines **************************/ @@ -2009,6 +2100,7 @@ return (EIO); } + mpt2sas_prt(mpt, MP2PRT_CONFIG, "IO Unit Page 1 Flags = 0x%x\n", mpt->iounit_pg1_flags); base = mpt->iounit_pg1_flags; if (mpt->ioc_facts.IOCCapabilities & MPI2_IOCFACTS_CAPABILITY_TASK_SET_FULL_HANDLING) { base &= ~MPI2_IOUNITPAGE1_DISABLE_TASK_SET_FULL_HANDLING; @@ -2222,6 +2314,9 @@ break; } } + if (mpt->fabchanged) { + mpt2sas_discovery_change(mpt); + } if (mpt->ehook_active == 0 && mpt->path && mpt->devchanged) { sas_dev_t *dp; int r; @@ -2294,17 +2389,20 @@ MPT2_LOCK(mpt); mpt->ehook.ich_func = mpt2sas_intr_enable; mpt->ehook.ich_arg = mpt; + mpt->ehook_active = 1; if (config_intrhook_establish(&mpt->ehook) != 0) { + mpt->ehook_active = 0; return (-EIO); } - mpt->ehook_active = 1; callout_init(&mpt->watchdog, 1); MPT2_UNLOCK(mpt); error = mpt2sas_init(mpt); if (error) { MPT2_LOCK(mpt); - config_intrhook_disestablish(&mpt->ehook); - mpt->ehook_active = 0; + if (mpt->ehook_active) { + mpt->ehook_active = 0; + config_intrhook_disestablish(&mpt->ehook); + } MPT2_UNLOCK(mpt); return (error); } @@ -2316,8 +2414,10 @@ error = mpt2sas_cam_attach(mpt); if (error) { MPT2_LOCK(mpt); - config_intrhook_disestablish(&mpt->ehook); - mpt->ehook_active = 0; + if (mpt->ehook_active) { + mpt->ehook_active = 0; + config_intrhook_disestablish(&mpt->ehook); + } MPT2_UNLOCK(mpt); return (error); } @@ -2331,14 +2431,20 @@ int mpt2sas_detach(mpt2sas_t *mpt) { + int res; + MPT2_LOCK(mpt); + res = mpt2sas_cam_detach(mpt); + if (res) { + MPT2_UNLOCK(mpt); + return (res); + } if (mpt->ehook_active) { config_intrhook_disestablish(&mpt->ehook); mpt->ehook_active = 0; } - if (callout_active(&mpt->watchdog)) { + if (callout_active(&mpt->watchdog)) callout_drain(&mpt->watchdog); - } TAILQ_REMOVE(&mpt2sas_tailq, mpt, links); MPT2_UNLOCK(mpt); return (0); ==== //depot/projects/mjacob-dev/sys/dev/mpt2sas/mpt2sas.h#8 (text+ko) ==== @@ -307,11 +307,13 @@ void mpt2host_portfacts_convert(MPI2_PORT_FACTS_REPLY *); void mpt2host_phydata_convert(MPI2_SAS_IO_UNIT0_PHY_DATA *); void mpt2host_sas_dev_page0_convert(MPI2_CONFIG_PAGE_SAS_DEV_0 *); +void mpt2host_sas_discovery_event_convert(MPI2_EVENT_DATA_SAS_DISCOVERY *); #else #define mpt2host_iocfacts_convert(x) do { ; } while (0) #define mpt2host_portfacts_convert(x) do { ; } while (0) #define mpt2host_phydata_convert(x) do { ; } while (0) #define mpt2host_sas_dev_page0_convert(x) do { ; } while (0) +#define mpt2host_sas_discovery_event_convert(x) do { ; } while (0) #endif @@ -529,6 +531,7 @@ */ unsigned int portenabled : 1, + fabchanged : 1, devchanged : 1, outofbeer : 1, acks_needed : 1, @@ -696,7 +699,7 @@ /**************************** CAM Routines ***************************/ int mpt2sas_cam_attach(mpt2sas_t *); -void mpt2sas_cam_detach(mpt2sas_t *); +int mpt2sas_cam_detach(mpt2sas_t *); void mpt2sas_cam_done(mpt2sas_t *, request_t *, MPI2_SCSI_IO_REPLY *); int mpt2sas_run_scsicmd(mpt2sas_t *, U16, U8 *, int, bus_addr_t, bus_size_t, boolean_t); int mpt2sas_scsi_abort(mpt2sas_t *, request_t *); From owner-p4-projects@FreeBSD.ORG Tue Aug 9 22:45:14 2011 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id F1F871065672; Tue, 9 Aug 2011 22:45:13 +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 B23FF106564A for ; Tue, 9 Aug 2011 22:45:13 +0000 (UTC) (envelope-from mjacob@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 875018FC1A for ; Tue, 9 Aug 2011 22:45: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 p79MjDD0052428 for ; Tue, 9 Aug 2011 22:45:13 GMT (envelope-from mjacob@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id p79MjD8O052425 for perforce@freebsd.org; Tue, 9 Aug 2011 22:45:13 GMT (envelope-from mjacob@freebsd.org) Date: Tue, 9 Aug 2011 22:45:13 GMT Message-Id: <201108092245.p79MjD8O052425@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to mjacob@freebsd.org using -f From: Matt Jacob To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 197446 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, 09 Aug 2011 22:45:14 -0000 http://p4web.freebsd.org/@@197446?ac=10 Change 197446 by mjacob@mjacob-sandbox on 2011/08/09 22:44:44 Remove debug code inadvertantly left in. Affected files ... .. //depot/projects/mjacob-dev/sys/dev/mpt2sas/mpt2pci.c#6 edit Differences ... ==== //depot/projects/mjacob-dev/sys/dev/mpt2sas/mpt2pci.c#6 (text+ko) ==== @@ -203,8 +203,6 @@ if (bootverbose) { mpt->prt_mask |= MP2PRT_INFO; } - mpt->prt_mask = 0x3f; - } } From owner-p4-projects@FreeBSD.ORG Tue Aug 9 22:49:37 2011 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id CA8081065675; Tue, 9 Aug 2011 22:49:37 +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 8C506106566C for ; Tue, 9 Aug 2011 22:49:37 +0000 (UTC) (envelope-from mjacob@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 7A8B58FC18 for ; Tue, 9 Aug 2011 22:49:37 +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 p79MnbPx052520 for ; Tue, 9 Aug 2011 22:49:37 GMT (envelope-from mjacob@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id p79Mnb6B052517 for perforce@freebsd.org; Tue, 9 Aug 2011 22:49:37 GMT (envelope-from mjacob@freebsd.org) Date: Tue, 9 Aug 2011 22:49:37 GMT Message-Id: <201108092249.p79Mnb6B052517@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to mjacob@freebsd.org using -f From: Matt Jacob To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 197447 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, 09 Aug 2011 22:49:38 -0000 http://p4web.freebsd.org/@@197447?ac=10 Change 197447 by mjacob@mjacob-sandbox on 2011/08/09 22:49:27 Niggling space instead of tabs. Affected files ... .. //depot/projects/mjacob-dev/sys/dev/mpt2sas/mpt2sas.c#8 edit Differences ... ==== //depot/projects/mjacob-dev/sys/dev/mpt2sas/mpt2sas.c#8 (text+ko) ==== @@ -2389,7 +2389,7 @@ MPT2_LOCK(mpt); mpt->ehook.ich_func = mpt2sas_intr_enable; mpt->ehook.ich_arg = mpt; - mpt->ehook_active = 1; + mpt->ehook_active = 1; if (config_intrhook_establish(&mpt->ehook) != 0) { mpt->ehook_active = 0; return (-EIO); From owner-p4-projects@FreeBSD.ORG Wed Aug 10 16:20:18 2011 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 015D01065675; Wed, 10 Aug 2011 16:20: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 B5CAC10656D3 for ; Wed, 10 Aug 2011 16:20:17 +0000 (UTC) (envelope-from jceel@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id A353F8FC2A for ; Wed, 10 Aug 2011 16:20: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 p7AGKH3K065808 for ; Wed, 10 Aug 2011 16:20:17 GMT (envelope-from jceel@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id p7AGKH8Y065804 for perforce@freebsd.org; Wed, 10 Aug 2011 16:20:17 GMT (envelope-from jceel@freebsd.org) Date: Wed, 10 Aug 2011 16:20:17 GMT Message-Id: <201108101620.p7AGKH8Y065804@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to jceel@freebsd.org using -f From: Jakub Wojciech Klama To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 197475 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, 10 Aug 2011 16:20:18 -0000 http://p4web.freebsd.org/@@197475?ac=10 Change 197475 by jceel@jceel_cyclone on 2011/08/10 16:19:17 Fixes in if_lpe: * MAC address is now read from FDT tree * Refactored some hardcoded values to #defines Affected files ... .. //depot/projects/soc2011/jceel_lpc/sys/arm/lpc/if_lpe.c#5 edit .. //depot/projects/soc2011/jceel_lpc/sys/arm/lpc/if_lpereg.h#4 edit .. //depot/projects/soc2011/jceel_lpc/sys/arm/lpc/lpcreg.h#10 edit .. //depot/projects/soc2011/jceel_lpc/sys/boot/fdt/dts/ea3250.dts#11 edit Differences ... ==== //depot/projects/soc2011/jceel_lpc/sys/arm/lpc/if_lpe.c#5 (text+ko) ==== @@ -114,6 +114,7 @@ struct lpe_softc { struct ifnet * lpe_ifp; struct mtx lpe_mtx; + phandle_t lpe_ofw; device_t lpe_dev; device_t lpe_miibus; uint8_t lpe_enaddr[6]; @@ -158,7 +159,6 @@ static int lpe_ifmedia_upd(struct ifnet *); static void lpe_ifmedia_sts(struct ifnet *, struct ifmediareq *); - #define lpe_lock(_sc) mtx_lock(&(_sc)->lpe_mtx) #define lpe_unlock(_sc) mtx_unlock(&(_sc)->lpe_mtx) #define lpe_lock_assert(sc) mtx_assert(&(_sc)->lpe_mtx, MA_OWNED) @@ -184,17 +184,21 @@ { struct lpe_softc *sc = device_get_softc(dev); struct ifnet *ifp; - int rid; + int rid, i; uint32_t val; sc->lpe_dev = dev; + sc->lpe_ofw = ofw_bus_get_node(dev); - sc->lpe_enaddr[0] = 0x00; - sc->lpe_enaddr[1] = 0x1a; - sc->lpe_enaddr[2] = 0xf1; - sc->lpe_enaddr[3] = 0x01; - sc->lpe_enaddr[4] = 0x1f; - sc->lpe_enaddr[5] = 0x23; + i = OF_getprop(sc->lpe_ofw, "local-mac-address", (void *)&sc->lpe_enaddr, 6); + if (i != 6) { + sc->lpe_enaddr[0] = 0x00; + sc->lpe_enaddr[1] = 0x11; + sc->lpe_enaddr[2] = 0x22; + sc->lpe_enaddr[3] = 0x33; + sc->lpe_enaddr[4] = 0x44; + sc->lpe_enaddr[5] = 0x55; + } mtx_init(&sc->lpe_mtx, device_get_nameunit(dev), MTX_NETWORK_LOCK, MTX_DEF); @@ -250,7 +254,11 @@ } /* Enable Ethernet clock */ - lpc_pwr_write(dev, LPC_CLKPWR_MACCLK_CTRL, 0x1f); /* XXX */ + lpc_pwr_write(dev, LPC_CLKPWR_MACCLK_CTRL, + LPC_CLKPWR_MACCLK_CTRL_REG | + LPC_CLKPWR_MACCLK_CTRL_SLAVE | + LPC_CLKPWR_MACCLK_CTRL_MASTER | + LPC_CLKPWR_MACCLK_CTRL_HDWINF(3)); /* Reset chip */ lpe_reset(sc); @@ -550,7 +558,8 @@ if (i == nsegs - 1) { hwd->lhr_control |= LPE_HWDESC_LASTFLAG; hwd->lhr_control |= LPE_HWDESC_INTERRUPT; - hwd->lhr_control |= (1 << 28) | (1 << 29); // XXX + hwd->lhr_control |= LPE_HWDESC_CRC; + hwd->lhr_control |= LPE_HWDESC_PAD; } LPE_INC(prod, LPE_TXDESC_NUM); ==== //depot/projects/soc2011/jceel_lpc/sys/arm/lpc/if_lpereg.h#4 (text+ko) ==== @@ -158,6 +158,8 @@ /* These are valid for Tx descriptors only */ #define LPE_HWDESC_INTERRUPT (1 << 31) +#define LPE_HWDESC_CRC (1 << 29) +#define LPE_HWDESC_PAD (1 << 28) /* These are valid for Rx descriptors only */ #define LPE_HWDESC_CONTROL (1 << 18) ==== //depot/projects/soc2011/jceel_lpc/sys/arm/lpc/lpcreg.h#10 (text+ko) ==== @@ -28,6 +28,8 @@ #define _ARM_LPC_LPCREG_H #define LPC_DEV_PHYS_BASE 0x40000000 +#define LPC_DEV_P5_PHYS_BASE 0x20000000 +#define LPC_DEV_P6_PHYS_BASE 0x30000000 #define LPC_DEV_BASE 0xd0000000 #define LPC_DEV_SIZE 0x10000000 @@ -144,6 +146,10 @@ #define LPC_CLKPWR_DMACLK_CTRL_EN (1 << 0) #define LPC_CLKPWR_FLASHCLK_CTRL 0xc8 #define LPC_CLKPWR_MACCLK_CTRL 0x90 +#define LPC_CLKPWR_MACCLK_CTRL_REG (1 << 0) +#define LPC_CLKPWR_MACCLK_CTRL_SLAVE (1 << 1) +#define LPC_CLKPWR_MACCLK_CTRL_MASTER (1 << 2) +#define LPC_CLKPWR_MACCLK_CTRL_HDWINF(_n) ((_n & 0x3) << 3) #define LPC_CLKPWR_LCDCLK_CTRL 0x54 #define LPC_CLKPWR_LCDCLK_CTRL_DISPTYPE (1 << 8) #define LPC_CLKPWR_LCDCLK_CTRL_MODE(_n) ((_n & 0x3) << 6) @@ -205,6 +211,7 @@ /* * MMC/SD controller. (from UM10326: LPC32x0 User manual, page 436) */ +#define LPC_SD_BASE (LPC_DEV_P5_PHYS_BASE + 0x98000) #define LPC_SD_CLK (13 * 1000 * 1000) // 13Mhz #define LPC_SD_POWER 0x00 #define LPC_SD_POWER_OPENDRAIN (1 << 6) @@ -560,6 +567,9 @@ #define LPC_DMAC_SOFTLBREQ 0x28 #define LPC_DMAC_SOFTLSREQ 0x2c #define LPC_DMAC_CONFIG 0x30 +#define LPC_DMAC_CONFIG_M1 (1 << 2) +#define LPC_DMAC_CONFIG_M0 (1 << 1) +#define LPC_DMAC_CONFIG_ENABLE (1 << 0) #define LPC_DMAC_CHADDR(_n) (0x100 + (_n * 0x20)) #define LPC_DMAC_CHNUM 8 #define LPC_DMAC_CHSIZE 0x20 @@ -593,4 +603,25 @@ #define LPC_DMAC_CH_CONFIG_SRCP(_n) ((_n & 0x1f) << 1) #define LPC_DMAC_CH_CONFIG_E (1 << 0) +/* DMA peripheral ID's */ +#define LPC_DMAC_I2S0_DMA0_ID 0 +#define LPC_DMAC_NAND_ID 1 +#define LPC_DMAC_IS21_DMA0_ID 2 +#define LPC_DMAC_SSP1_ID 3 +#define LPC_DMAC_SPI2_ID 3 +#define LPC_DMAC_SD_ID 4 +#define LPC_DMAC_UART1_TX_ID 5 +#define LPC_DMAC_UART1_RX_ID 6 +#define LPC_DMAC_UART2_TX_ID 7 +#define LPC_DMAC_UART2_RX_ID 8 +#define LPC_DMAC_UART7_TX_ID 9 +#define LPC_DMAC_UART7_RX_ID 10 +#define LPC_DMAC_I2S1_DMA1_ID 10 +#define LPC_DMAC_SPI1_ID 11 +#define LPC_DMAC_SSP1_TX_ID 11 +#define LPC_DMAC_NAND2_ID 12 +#define LPC_DMAC_I2S0_DMA1_ID 13 +#define LPC_DMAC_SSP0_RX 14 +#define LPC_DMAC_SSP0_TX 15 + #endif /* _ARM_LPC_LPCREG_H */ ==== //depot/projects/soc2011/jceel_lpc/sys/boot/fdt/dts/ea3250.dts#11 (text+ko) ==== @@ -179,9 +179,9 @@ compatible = "simple-bus"; ranges = <0x0 0x30000000 0x10000000>; - dmac@100000 { + dmac@1000000 { compatible = "lpc,dmac"; - reg = <0x100000 0x20000>; + reg = <0x1000000 0x20000>; interrupts = <28>; interrupt-parent = <&PIC>; }; @@ -218,6 +218,7 @@ reg = <0x1060000 0x20000>; interrupts = <29>; interrupt-parent = <&PIC>; + local-mac-address = [ 00 1a f1 01 1f 23 ]; mdio@0 { #address-cells = <1>; From owner-p4-projects@FreeBSD.ORG Wed Aug 10 16:20:18 2011 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9A710106578F; Wed, 10 Aug 2011 16:20: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 EF792106566C for ; Wed, 10 Aug 2011 16:20:17 +0000 (UTC) (envelope-from jceel@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id C5D008FC1E for ; Wed, 10 Aug 2011 16:20: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 p7AGKHI3065817 for ; Wed, 10 Aug 2011 16:20:17 GMT (envelope-from jceel@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id p7AGKHwU065813 for perforce@freebsd.org; Wed, 10 Aug 2011 16:20:17 GMT (envelope-from jceel@freebsd.org) Date: Wed, 10 Aug 2011 16:20:17 GMT Message-Id: <201108101620.p7AGKHwU065813@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to jceel@freebsd.org using -f From: Jakub Wojciech Klama To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 197476 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, 10 Aug 2011 16:20:18 -0000 http://p4web.freebsd.org/@@197476?ac=10 Change 197476 by jceel@jceel_cyclone on 2011/08/10 16:19:49 Add lpe(4) manual page. Affected files ... .. //depot/projects/soc2011/jceel_lpc/share/man/man4/lpe.4#1 add Differences ... From owner-p4-projects@FreeBSD.ORG Thu Aug 11 12:43:46 2011 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 61B001065670; Thu, 11 Aug 2011 12:43: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 2411D1065673 for ; Thu, 11 Aug 2011 12:43:46 +0000 (UTC) (envelope-from syuu@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 117BA8FC15 for ; Thu, 11 Aug 2011 12:43: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 p7BChjDS011455 for ; Thu, 11 Aug 2011 12:43:45 GMT (envelope-from syuu@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id p7BChjTL011452 for perforce@freebsd.org; Thu, 11 Aug 2011 12:43:45 GMT (envelope-from syuu@FreeBSD.org) Date: Thu, 11 Aug 2011 12:43:45 GMT Message-Id: <201108111243.p7BChjTL011452@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to syuu@FreeBSD.org using -f From: Takuya ASADA To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 197505 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, 11 Aug 2011 12:43:46 -0000 http://p4web.freebsd.org/@@197505?ac=10 Change 197505 by syuu@kikurage on 2011/08/11 12:42:40 mq_bpf support for mxge Affected files ... .. //depot/projects/soc2011/mq_bpf/src/sys/dev/mxge/if_mxge.c#2 edit .. //depot/projects/soc2011/mq_bpf/src/tools/regression/bpf/mq_bpf/test_sqbpf/test_sqbpf.c#4 edit Differences ... ==== //depot/projects/soc2011/mq_bpf/src/sys/dev/mxge/if_mxge.c#2 (text+ko) ==== @@ -119,6 +119,11 @@ static int mxge_shutdown(device_t dev); static void mxge_intr(void *arg); +static int mxge_get_rxqueue_len(struct ifnet *); +static int mxge_get_txqueue_len(struct ifnet *); +static int mxge_get_rxqueue_affinity(struct ifnet *, int); +static int mxge_get_txqueue_affinity(struct ifnet *, int); + static device_method_t mxge_methods[] = { /* Device interface */ @@ -2231,6 +2236,9 @@ if (m == NULL) { return; } + m->m_pkthdr.rxqueue = (uint32_t)-1; + m->m_pkthdr.txqueue = (ss - sc->ss); + /* let BPF see it */ BPF_MTAP(ifp, m); @@ -2265,6 +2273,9 @@ if (!drbr_needs_enqueue(ifp, tx->br) && ((tx->mask - (tx->req - tx->done)) > tx->max_desc)) { + m->m_pkthdr.rxqueue = (uint32_t)-1; + m->m_pkthdr.txqueue = (ss - sc->ss); + /* let BPF see it */ BPF_MTAP(ifp, m); /* give it to the nic */ @@ -2603,6 +2614,8 @@ if (sc->num_slices > 1) { m->m_pkthdr.flowid = (ss - sc->ss); m->m_flags |= M_FLOWID; + m->m_pkthdr.rxqueue = (ss - sc->ss); + m->m_pkthdr.txqueue = (uint32_t)-1; } /* pass the frame up the stack */ (*ifp->if_input)(ifp, m); @@ -4355,6 +4368,7 @@ /* see how many MSI-X interrupts are available */ msix_cnt = pci_msix_count(sc->dev); + printf("%s: msix_cnt:%d\n", __func__, msix_cnt); if (msix_cnt < 2) return; @@ -4364,6 +4378,7 @@ sc->fw_name = mxge_fw_rss_aligned; else sc->fw_name = mxge_fw_rss_unaligned; + printf("%s: fw aligned?:%d\n", __func__, old_fw == mxge_fw_aligned); status = mxge_load_firmware(sc, 0); if (status != 0) { device_printf(sc->dev, "Falling back to a single slice\n"); @@ -4389,6 +4404,7 @@ /* tell it the size of the interrupt queues */ cmd.data0 = max_intr_slots * sizeof (struct mcp_slot); + printf("%s: intrq_size:%d\n", __func__, cmd.data0); status = mxge_send_cmd(sc, MXGEFW_CMD_SET_INTRQ_SIZE, &cmd); if (status != 0) { device_printf(sc->dev, "failed MXGEFW_CMD_SET_INTRQ_SIZE\n"); @@ -4402,6 +4418,7 @@ "failed MXGEFW_CMD_GET_MAX_RSS_QUEUES\n"); goto abort_with_fw; } + printf("%s: max_rss_queues:%d\n", __func__, cmd.data0); sc->num_slices = cmd.data0; if (sc->num_slices > msix_cnt) sc->num_slices = msix_cnt; @@ -4790,6 +4807,7 @@ sc->fw_ver_tiny >= 32) ifp->if_capabilities |= IFCAP_VLAN_HWTSO; #endif + ifp->if_capabilities |= IFCAP_MULTIQUEUE; sc->max_mtu = mxge_max_mtu(sc); if (sc->max_mtu >= 9000) @@ -4808,6 +4826,11 @@ ifp->if_flags = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST; ifp->if_ioctl = mxge_ioctl; ifp->if_start = mxge_start; + ifp->if_get_rxqueue_len = mxge_get_rxqueue_len; + ifp->if_get_txqueue_len = mxge_get_txqueue_len; + ifp->if_get_rxqueue_affinity = mxge_get_rxqueue_affinity; + ifp->if_get_txqueue_affinity = mxge_get_txqueue_affinity; + /* Initialise the ifmedia structure */ ifmedia_init(&sc->media, 0, mxge_media_change, mxge_media_status); @@ -4904,6 +4927,33 @@ return 0; } + +static int +mxge_get_rxqueue_len(struct ifnet *ifp) +{ + mxge_softc_t *sc = ifp->if_softc; + return (sc->num_slices); +} + +static int +mxge_get_txqueue_len(struct ifnet *ifp) +{ + mxge_softc_t *sc = ifp->if_softc; + return (sc->num_slices); +} + +static int +mxge_get_rxqueue_affinity(struct ifnet *ifp, int queid) +{ + return (queid); +} + +static int +mxge_get_txqueue_affinity(struct ifnet *ifp, int queid) +{ + return (queid); +} + /* This file uses Myri10GE driver indentation. ==== //depot/projects/soc2011/mq_bpf/src/tools/regression/bpf/mq_bpf/test_sqbpf/test_sqbpf.c#4 (text+ko) ==== @@ -311,10 +311,23 @@ static int bpf_zbuf_init(struct bpf_zbuf *bz) { - int bmode; + int bmode, zmax; if ((bflag % getpagesize()) != 0) errx(1, "-b must be multiple of system page size"); + bmode = BPF_BUFMODE_ZBUF; + if (ioctl(bpffd, BIOCSETBUFMODE, &bmode) < 0) + err(1, "ioctl(BIOCGSETBUFMODE)"); +#if 0 + if (ioctl(bpffd, BIOCGETZMAX, &zmax) < 0) + err(1, "ioctl(BIOCGETZMAX)"); + if (bflag > zmax) { + (void) fprintf(stderr, + "buffer size is too big, truncated to %d\n", + zmax); + bflag = zmax; + } +#endif bz->bz_buflen = bflag; bufa = mmap(NULL, bz->bz_buflen, PROT_READ | PROT_WRITE, MAP_ANON, -1, 0); @@ -326,9 +339,6 @@ err(1, "mmap(bufb)"); bz->bz_bufa = bufa; bz->bz_bufb = bufb; - bmode = BPF_BUFMODE_ZBUF; - if (ioctl(bpffd, BIOCSETBUFMODE, &bmode) < 0) - err(1, "ioctl(BIOCGSETBUFMODE)"); if (ioctl(bpffd, BIOCSETZBUF, bz) < 0) err(1, "ioctl(BIOCSETZBUF)"); if (vflag) From owner-p4-projects@FreeBSD.ORG Fri Aug 12 05:18:02 2011 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 4259B1065670; Fri, 12 Aug 2011 05:18: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 D5E2E106566B for ; Fri, 12 Aug 2011 05:18:01 +0000 (UTC) (envelope-from syuu@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id C4B738FC19 for ; Fri, 12 Aug 2011 05:18: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 p7C5I1Al009037 for ; Fri, 12 Aug 2011 05:18:01 GMT (envelope-from syuu@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id p7C5I1Qu009034 for perforce@freebsd.org; Fri, 12 Aug 2011 05:18:01 GMT (envelope-from syuu@FreeBSD.org) Date: Fri, 12 Aug 2011 05:18:01 GMT Message-Id: <201108120518.p7C5I1Qu009034@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to syuu@FreeBSD.org using -f From: Takuya ASADA To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 197533 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, 12 Aug 2011 05:18:02 -0000 http://p4web.freebsd.org/@@197533?ac=10 Change 197533 by syuu@kikurage on 2011/08/12 05:17:00 mq_bpf document added on bpf(4) netintro(4) Affected files ... .. //depot/projects/soc2011/mq_bpf/src/share/man/man4/bpf.4#2 edit .. //depot/projects/soc2011/mq_bpf/src/share/man/man4/netintro.4#2 edit Differences ... ==== //depot/projects/soc2011/mq_bpf/src/share/man/man4/bpf.4#2 (text+ko) ==== @@ -47,7 +47,7 @@ .\" This document is derived in part from the enet man page (enet.4) .\" distributed with 4.3BSD Unix. .\" -.\" $FreeBSD: src/share/man/man4/bpf.4,v 1.56 2010/10/08 12:40:16 uqs Exp $ +.\" $FreeBSD$ .\" .Dd June 15, 2010 .Dt BPF 4 @@ -631,6 +631,46 @@ .Vt bzh_kernel_gen against .Vt bzh_user_gen . +.It Dv BIOCENAQMASK +Enables multiqueue filter on the descriptor. + +.It Dv BIOCDISQMASK +Disables multiqueue filter on the descriptor. + +.It Dv BIOCSTRXQMASK +.Pq Li uint32_t +Set mask bit on specified RX queue. + +.It Dv BIOCCRRXQMASK +.Pq Li uint32_t +Clear mask bit on specified RX queue. + +.It Dv BIOCGTRXQMASK +.Pq Li uint32_t +Get mask bit on specified RX queue. + +.It Dv BIOCSTTXQMASK +.Pq Li uint32_t +Set mask bit on specified TX queue. + +.It Dv BIOCCRTXQMASK +.Pq Li uint32_t +Clear mask bit on specified TX queue. + +.It Dv BIOCGTTXQMASK +.Pq Li uint32_t +Get mask bit on specified TX queue. + +.It Dv BIOCSTOTHERMASK +Set mask bit for the packets which not tied with any queues. + +.It Dv BIOCCROTHERMASK +Clear mask bit for the packets which not tied with any queues. + +.It Dv BIOCGTOTHERMASK +.Pq Li uint32_t +Get mask bit for the packets which not tied with any queues. + .El .Sh BPF HEADER One of the following structures is prepended to each packet returned by @@ -1014,6 +1054,24 @@ BPF_STMT(BPF_RET+BPF_K, 0), }; .Ed +.Sh MULTIQUEUE SUPPORT +Multiqueue network interface support function provides interfaces for +multithreaded packet processing using bpf. + +Normal bpf can receive packets from specified interface, multiqueue support +function can receive packets from specified hardware queue. + +This distributes bpf workload on multiple threads, also reduces lock +contention on bpf. + +To make your program multithreaded, you'll need to open bpf descriptor on each +thread, enable multiqueue support by BIOCENAQMASK ioctl, and set queue mask by +BIOCSTRXQMASK / BIOCSTTXQMASK / BIOCSTOTHERMASK ioctls. + +Queue length and queue affinity information may useful to optimize setting +queue mask on bpf descriptor, see +.Xr netintro 4 . + .Sh SEE ALSO .Xr tcpdump 1 , .Xr ioctl 2 , ==== //depot/projects/soc2011/mq_bpf/src/share/man/man4/netintro.4#2 (text+ko) ==== @@ -30,7 +30,7 @@ .\" SUCH DAMAGE. .\" .\" @(#)netintro.4 8.2 (Berkeley) 11/30/93 -.\" $FreeBSD: src/share/man/man4/netintro.4,v 1.30 2010/10/08 12:40:16 uqs Exp $ +.\" $FreeBSD$ .\" .Dd April 14, 2010 .Dt NETINTRO 4 @@ -213,6 +213,9 @@ int ifru_media; caddr_t ifru_data; int ifru_cap[2]; + u_int ifru_fib; + int ifru_queue_len[2]; + int ifru_queue_affinity[2]; } ifr_ifru; #define ifr_addr ifr_ifru.ifru_addr /* address */ #define ifr_dstaddr ifr_ifru.ifru_dstaddr /* other end of p-to-p link */ @@ -228,6 +231,11 @@ #define ifr_reqcap ifr_ifru.ifru_cap[0] /* requested capabilities */ #define ifr_curcap ifr_ifru.ifru_cap[1] /* current capabilities */ #define ifr_index ifr_ifru.ifru_index /* interface index */ +#define ifr_fib ifr_ifru.ifru_fib /* interface fib */ +#define ifr_rxqueue_len ifr_ifru.ifru_queue_len[0] /* rxqueue len */ +#define ifr_txqueue_len ifr_ifru.ifru_queue_len[1] /* txqueue len */ +#define ifr_queue_affinity_index ifr_ifru.ifru_queue_affinity[0] /* queue id */ +#define ifr_queue_affinity_cpu ifr_ifru.ifru_queue_affinity[1] /* cpu id */ }; .Ed .Pp @@ -332,6 +340,12 @@ field will contain the new interface name. .It Dv SIOCIFDESTROY Attempt to destroy the specified interface. +.It Dv SIOCGIFQLEN +Get interface RX/TX queue length. +.It Dv SIOCGIFRXQAFFINITY +Get interface RX queue affinity. +.It Dv SIOCGIFTXQAFFINITY +Get interface TX queue affinity. .El .Pp There are two requests that make use of a new structure: From owner-p4-projects@FreeBSD.ORG Fri Aug 12 06:24:58 2011 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id DA3BF1065675; Fri, 12 Aug 2011 06:24: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 8AA151065670 for ; Fri, 12 Aug 2011 06:24:57 +0000 (UTC) (envelope-from syuu@FreeBSD.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id 79E928FC08 for ; Fri, 12 Aug 2011 06:24: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 p7C6Ovui022386 for ; Fri, 12 Aug 2011 06:24:57 GMT (envelope-from syuu@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id p7C6Ov1H022383 for perforce@freebsd.org; Fri, 12 Aug 2011 06:24:57 GMT (envelope-from syuu@FreeBSD.org) Date: Fri, 12 Aug 2011 06:24:57 GMT Message-Id: <201108120624.p7C6Ov1H022383@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to syuu@FreeBSD.org using -f From: Takuya ASADA To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 197535 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, 12 Aug 2011 06:24:58 -0000 http://p4web.freebsd.org/@@197535?ac=10 Change 197535 by syuu@kikurage on 2011/08/12 06:24:23 documentation for ifnet(9) Affected files ... .. //depot/projects/soc2011/mq_bpf/src/share/man/man9/ifnet.9#2 edit Differences ... ==== //depot/projects/soc2011/mq_bpf/src/share/man/man9/ifnet.9#2 (text+ko) ==== @@ -26,9 +26,9 @@ .\" OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" $FreeBSD: src/share/man/man9/ifnet.9,v 1.58 2010/07/27 08:45:29 simon Exp $ +.\" $FreeBSD$ .\" -.Dd December 1, 2009 +.Dd July 3, 2011 .Dt IFNET 9 .Os .Sh NAME @@ -116,6 +116,14 @@ .Fo \*(lp*if_resolvemulti\*(rp .Fa "struct ifnet *ifp" "struct sockaddr **retsa" "struct sockaddr *addr" .Fc +.Ft int +.Fn \*(lp*if_get_rxqueue_len\*(rp "struct ifnet *ifp" +.Ft int +.Fn \*(lp*if_get_txqueue_len\*(rp "struct ifnet *ifp" +.Ft int +.Fn \*(lp*if_get_rxqueue_affinity\*(rp "struct ifnet *ifp" "int queid" +.Ft int +.Fn \*(lp*if_get_txqueue_affinity\*(rp "struct ifnet *ifp" "int queid" .Ss "struct ifaddr member function" .Ft void .Fo \*(lp*ifa_rtrequest\*(rp @@ -1169,11 +1177,12 @@ Caller must have appropriate privilege. (No call-down to driver.) .It Dv SIOCGIFCAP +.It Dv SIOCGIFFIB .It Dv SIOCGIFFLAGS .It Dv SIOCGIFMETRIC .It Dv SIOCGIFMTU .It Dv SIOCGIFPHYS -Get interface capabilities, flags, metric, MTU, medium selection. +Get interface capabilities, FIB, flags, metric, MTU, medium selection. (No call-down to driver.) .Pp .It Dv SIOCSIFCAP @@ -1192,6 +1201,12 @@ .Va if_data.ifi_hwassist appropriately. .Pp +.It Dv SIOCSIFFIB +Sets interface FIB. +Caller must have appropriate privilege. +FIB values start at 0 and values greater or equals than +.Va net.fibs +are considered invalid. .It Dv SIOCSIFFLAGS Change interface flags. Caller must have appropriate privilege. From owner-p4-projects@FreeBSD.ORG Fri Aug 12 15:40:05 2011 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 9FA1B1065673; Fri, 12 Aug 2011 15: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 61AEA106564A for ; Fri, 12 Aug 2011 15:40:05 +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 479FB8FC12 for ; Fri, 12 Aug 2011 15: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 p7CFe5lv050265 for ; Fri, 12 Aug 2011 15:40:05 GMT (envelope-from rene@FreeBSD.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id p7CFe5fv050260 for perforce@freebsd.org; Fri, 12 Aug 2011 15:40:05 GMT (envelope-from rene@FreeBSD.org) Date: Fri, 12 Aug 2011 15:40:05 GMT Message-Id: <201108121540.p7CFe5fv050260@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 197555 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, 12 Aug 2011 15:40:05 -0000 http://p4web.freebsd.org/@@197555?ac=10 Change 197555 by rene@rene_acer on 2011/08/12 15:39:54 IFC Affected files ... .. //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/serialcomms/chapter.sgml#12 integrate .. //depot/projects/docproj_nl/share/mk/doc.xml.mk#3 integrate .. //depot/projects/docproj_nl/www/share/mk/doc.xml.mk#2 integrate .. //depot/projects/docproj_nl/www/share/sgml/events2011.xml#3 integrate Differences ... ==== //depot/projects/docproj_nl/nl_NL.ISO8859-1/books/handbook/serialcomms/chapter.sgml#12 (text+ko) ==== @@ -1,7 +1,7 @@