Re: svn commit: r197969 - head/sys/conf
In message: ecc72cab-de06-4921-b228-1db72f8b9...@mac.com Marcel Moolenaar xcl...@mac.com writes: : : On Oct 14, 2009, at 9:44 PM, M. Warner Losh wrote: : This is also the source of my frustration with the thread, I think. I : don't think that Marcel understood this world view and assumed that no : mapping was needed and therefore orm was this horribly x86 specific : code. Since I didn't understand this until today, I reacted badly and : lost my temper, for which I'd like to apologize. I should have : stopped and explained this view better. : : Apology accepted. Sorry, if I appeared frustrated as well. : : I can respect the PoV that the hardcoding in drivers are bus addresses. : I have no problem with that. It isn't my PoV, because it doesn't match : with the existence of functions like inb(), outb(), inw(), outw(), etc. inb, etc, aren't part of bus_space and exist outside of it. These functions typically don't exist on !x86 platforms, and when they do they are very platform specific.. : The I/O port numbers passed to those functions are typically absolute : due to the total lack of newbus involvement. I merely extrapolated the : memory addresses as behaving in the same way. They do actually, because : VGA frame buffer memory is at 0xA and part of the PCI specification : and you don't want to translate that, so how does MD code know when to : map and when not to? It doesn't, so the only logical interpretation is : that the addresses are absolute and no mapping can be done. The PCI specification says that the frame buffer is at 0xa in the pci bus space. It doesn't say anything about how that bus space is mapped into the processor's address space (although it comments on x86's traditional mapping in many places). : I don't mind changing the interpretation of I/O ports and memory : addresses as being ISA bus addresses, but that means that we need to : get rid off inb(), outb(), et al and use newbus through out. Until : that's done (and people figure out how to deal with VGA resources) or : there's a real need for orm(4), it's safest for non-PC platforms to not : have orm(4) wreck havoc. There is a real need for orm. I'm open to ways to improve the situation without requiring the complete implementation of the ISA stuff. The reason that it does wreck havoc is because there's problems in the ISA implementation on the platforms it wrecks havoc on. You can mask these problems by removing orm. However, any other isa device that reads memory will have issues on these platforms. The VGA resource issue should be a simple one to deal with via bus_spae. This is the first time I've heard of it, frankly, so would be interested in learning more about it. We've also, as a project, have strongly encouraged drivers to move away from inb, et al, and direct memory access to using bus_space interfaces since around FreeBSD 4.0. Many drivers have been converted. I think the few stragglers were killed as part of the network modernization efforts, although some pre-ISA PNP support still uses inb/outb directly. I think I'd quibble that it is !x86. It is specific to powerpc and itanium platforms. Sparc64 handles it correctly, as does arm (at east in the projects/arm tree). I don't think that mips has any ISA support, even in the projects/mips tree. Warner ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r198111 - head/sys/netinet
Author: qingli Date: Thu Oct 15 06:12:04 2009 New Revision: 198111 URL: http://svn.freebsd.org/changeset/base/198111 Log: This patch fixes the following issues in the ARP operation: 1. There is a regression issue in the ARP code. The incomplete ARP entry was timing out too quickly (1 second timeout), as such, a new entry is created each time arpresolve() is called. Therefore the maximum attempts made is always 1. Consequently the error code returned to the application is always 0. 2. Set the expiration of each incomplete entry to a 20-second lifetime. 3. Return incomplete entries to the application. Reviewed by: kmacy MFC after:3 days Modified: head/sys/netinet/if_ether.c head/sys/netinet/in.c Modified: head/sys/netinet/if_ether.c == --- head/sys/netinet/if_ether.c Thu Oct 15 06:02:37 2009(r198110) +++ head/sys/netinet/if_ether.c Thu Oct 15 06:12:04 2009(r198111) @@ -88,11 +88,14 @@ VNET_DEFINE(int, useloopback) = 1; /* us /* timer values */ static VNET_DEFINE(int, arpt_keep) = (20*60); /* once resolved, good for 20 * minutes */ +static VNET_DEFINE(int, arpt_down) = 20; /* keep incomplete entries for + * 20 seconds */ static VNET_DEFINE(int, arp_maxtries) = 5; static VNET_DEFINE(int, arp_proxyall); static VNET_DEFINE(struct arpstat, arpstat); /* ARP statistics, see if_arp.h */ #defineV_arpt_keep VNET(arpt_keep) +#defineV_arpt_down VNET(arpt_down) #defineV_arp_maxtries VNET(arp_maxtries) #defineV_arp_proxyall VNET(arp_proxyall) #defineV_arpstat VNET(arpstat) @@ -309,7 +312,7 @@ retry: } if ((la-la_flags LLE_VALID) - ((la-la_flags LLE_STATIC) || la-la_expire time_uptime)) { + ((la-la_flags LLE_STATIC) || la-la_expire time_second)) { bcopy(la-ll_addr, desten, ifp-if_addrlen); /* * If entry has an expiry time and it is approaching, @@ -317,7 +320,7 @@ retry: * arpt_down interval. */ if (!(la-la_flags LLE_STATIC) - time_uptime + la-la_preempt la-la_expire) { + time_second + la-la_preempt la-la_expire) { arprequest(ifp, NULL, SIN(dst)-sin_addr, IF_LLADDR(ifp)); @@ -337,7 +340,7 @@ retry: goto done; } - renew = (la-la_asked == 0 || la-la_expire != time_uptime); + renew = (la-la_asked == 0 || la-la_expire != time_second); if ((renew || m != NULL) (flags LLE_EXCLUSIVE) == 0) { flags |= LLE_EXCLUSIVE; LLE_RUNLOCK(la); @@ -370,12 +373,12 @@ retry: error = EWOULDBLOCK;/* First request. */ else error = - (rt0-rt_flags RTF_GATEWAY) ? EHOSTDOWN : EHOSTUNREACH; + (rt0-rt_flags RTF_GATEWAY) ? EHOSTUNREACH : EHOSTDOWN; if (renew) { LLE_ADDREF(la); - la-la_expire = time_uptime; - callout_reset(la-la_timer, hz, arptimer, la); + la-la_expire = time_second; + callout_reset(la-la_timer, hz * V_arpt_down, arptimer, la); la-la_asked++; LLE_WUNLOCK(la); arprequest(ifp, NULL, SIN(dst)-sin_addr, @@ -687,7 +690,7 @@ match: EVENTHANDLER_INVOKE(arp_update_event, la); if (!(la-la_flags LLE_STATIC)) { - la-la_expire = time_uptime + V_arpt_keep; + la-la_expire = time_second + V_arpt_keep; callout_reset(la-la_timer, hz * V_arpt_keep, arptimer, la); } Modified: head/sys/netinet/in.c == --- head/sys/netinet/in.c Thu Oct 15 06:02:37 2009(r198110) +++ head/sys/netinet/in.c Thu Oct 15 06:12:04 2009(r198111) @@ -1440,7 +1440,7 @@ in_lltable_dump(struct lltable *llt, str struct sockaddr_dl *sdl; /* skip deleted entries */ - if ((lle-la_flags (LLE_DELETED|LLE_VALID)) != LLE_VALID) + if ((lle-la_flags LLE_DELETED) == LLE_DELETED) continue; /* Skip if jailed and not a valid IP of the prison. */ if (prison_if(wr-td-td_ucred, L3_ADDR(lle)) != 0) @@ -1472,10 +1472,15 @@ in_lltable_dump(struct lltable *llt, str sdl = arpc.sdl; sdl-sdl_family = AF_LINK; sdl-sdl_len
Re: svn commit: r198111 - head/sys/netinet
Forgot to mention the return code was incorrect. The function was returning EHOSTUNEACH when it should be returning EHOSTDOWN. This is also fixed by this patch. -- Qing On Wed, Oct 14, 2009 at 11:12 PM, Qing Li qin...@freebsd.org wrote: Author: qingli Date: Thu Oct 15 06:12:04 2009 New Revision: 198111 URL: http://svn.freebsd.org/changeset/base/198111 Log: This patch fixes the following issues in the ARP operation: 1. There is a regression issue in the ARP code. The incomplete ARP entry was timing out too quickly (1 second timeout), as such, a new entry is created each time arpresolve() is called. Therefore the maximum attempts made is always 1. Consequently the error code returned to the application is always 0. 2. Set the expiration of each incomplete entry to a 20-second lifetime. 3. Return incomplete entries to the application. Reviewed by: kmacy MFC after: 3 days Modified: head/sys/netinet/if_ether.c head/sys/netinet/in.c Modified: head/sys/netinet/if_ether.c == --- head/sys/netinet/if_ether.c Thu Oct 15 06:02:37 2009 (r198110) +++ head/sys/netinet/if_ether.c Thu Oct 15 06:12:04 2009 (r198111) @@ -88,11 +88,14 @@ VNET_DEFINE(int, useloopback) = 1; /* us /* timer values */ static VNET_DEFINE(int, arpt_keep) = (20*60); /* once resolved, good for 20 * minutes */ +static VNET_DEFINE(int, arpt_down) = 20; /* keep incomplete entries for + * 20 seconds */ static VNET_DEFINE(int, arp_maxtries) = 5; static VNET_DEFINE(int, arp_proxyall); static VNET_DEFINE(struct arpstat, arpstat); /* ARP statistics, see if_arp.h */ #define V_arpt_keep VNET(arpt_keep) +#define V_arpt_down VNET(arpt_down) #define V_arp_maxtries VNET(arp_maxtries) #define V_arp_proxyall VNET(arp_proxyall) #define V_arpstat VNET(arpstat) @@ -309,7 +312,7 @@ retry: } if ((la-la_flags LLE_VALID) - ((la-la_flags LLE_STATIC) || la-la_expire time_uptime)) { + ((la-la_flags LLE_STATIC) || la-la_expire time_second)) { bcopy(la-ll_addr, desten, ifp-if_addrlen); /* * If entry has an expiry time and it is approaching, @@ -317,7 +320,7 @@ retry: * arpt_down interval. */ if (!(la-la_flags LLE_STATIC) - time_uptime + la-la_preempt la-la_expire) { + time_second + la-la_preempt la-la_expire) { arprequest(ifp, NULL, SIN(dst)-sin_addr, IF_LLADDR(ifp)); @@ -337,7 +340,7 @@ retry: goto done; } - renew = (la-la_asked == 0 || la-la_expire != time_uptime); + renew = (la-la_asked == 0 || la-la_expire != time_second); if ((renew || m != NULL) (flags LLE_EXCLUSIVE) == 0) { flags |= LLE_EXCLUSIVE; LLE_RUNLOCK(la); @@ -370,12 +373,12 @@ retry: error = EWOULDBLOCK; /* First request. */ else error = - (rt0-rt_flags RTF_GATEWAY) ? EHOSTDOWN : EHOSTUNREACH; + (rt0-rt_flags RTF_GATEWAY) ? EHOSTUNREACH : EHOSTDOWN; if (renew) { LLE_ADDREF(la); - la-la_expire = time_uptime; - callout_reset(la-la_timer, hz, arptimer, la); + la-la_expire = time_second; + callout_reset(la-la_timer, hz * V_arpt_down, arptimer, la); la-la_asked++; LLE_WUNLOCK(la); arprequest(ifp, NULL, SIN(dst)-sin_addr, @@ -687,7 +690,7 @@ match: EVENTHANDLER_INVOKE(arp_update_event, la); if (!(la-la_flags LLE_STATIC)) { - la-la_expire = time_uptime + V_arpt_keep; + la-la_expire = time_second + V_arpt_keep; callout_reset(la-la_timer, hz * V_arpt_keep, arptimer, la); } Modified: head/sys/netinet/in.c == --- head/sys/netinet/in.c Thu Oct 15 06:02:37 2009 (r198110) +++ head/sys/netinet/in.c Thu Oct 15 06:12:04 2009 (r198111) @@ -1440,7 +1440,7 @@ in_lltable_dump(struct lltable *llt, str struct sockaddr_dl *sdl; /* skip deleted entries */ - if ((lle-la_flags (LLE_DELETED|LLE_VALID)) != LLE_VALID) + if ((lle-la_flags LLE_DELETED) == LLE_DELETED) continue; /* Skip if jailed and not a valid IP of the prison. */
svn commit: r198112 - in vendor/clang/dist: include/clang/AST include/clang/Basic lib/AST lib/Analysis lib/CodeGen lib/Frontend lib/Sema test/Analysis test/CodeGen test/CodeGenCXX test/SemaCXX test...
Author: rdivacky Date: Thu Oct 15 07:44:25 2009 New Revision: 198112 URL: http://svn.freebsd.org/changeset/base/198112 Log: Update clang to 84175. Modified: vendor/clang/dist/include/clang/AST/ASTContext.h vendor/clang/dist/include/clang/AST/Decl.h vendor/clang/dist/include/clang/AST/TypeLoc.h vendor/clang/dist/include/clang/AST/TypeLocNodes.def vendor/clang/dist/include/clang/AST/TypeLocVisitor.h vendor/clang/dist/include/clang/Basic/DiagnosticSemaKinds.td vendor/clang/dist/lib/AST/ASTContext.cpp vendor/clang/dist/lib/AST/Decl.cpp vendor/clang/dist/lib/AST/TypeLoc.cpp vendor/clang/dist/lib/Analysis/CFRefCount.cpp vendor/clang/dist/lib/Analysis/RegionStore.cpp vendor/clang/dist/lib/CodeGen/CGExpr.cpp vendor/clang/dist/lib/CodeGen/CGVtable.cpp vendor/clang/dist/lib/CodeGen/CodeGenModule.cpp vendor/clang/dist/lib/Frontend/PCHReaderDecl.cpp vendor/clang/dist/lib/Frontend/PCHWriterDecl.cpp vendor/clang/dist/lib/Sema/SemaDeclCXX.cpp vendor/clang/dist/lib/Sema/SemaExpr.cpp vendor/clang/dist/lib/Sema/SemaTemplate.cpp vendor/clang/dist/lib/Sema/SemaTemplateInstantiate.cpp vendor/clang/dist/lib/Sema/SemaTemplateInstantiateDecl.cpp vendor/clang/dist/lib/Sema/SemaType.cpp vendor/clang/dist/test/Analysis/NSString.m vendor/clang/dist/test/CodeGen/builtins-powi.c vendor/clang/dist/test/CodeGen/builtins.c vendor/clang/dist/test/CodeGen/const-init.c vendor/clang/dist/test/CodeGen/mandel.c vendor/clang/dist/test/CodeGenCXX/references.cpp vendor/clang/dist/test/CodeGenCXX/virt.cpp vendor/clang/dist/test/SemaCXX/incomplete-call.cpp vendor/clang/dist/test/SemaTemplate/explicit-instantiation.cpp vendor/clang/dist/test/SemaTemplate/temp_explicit.cpp vendor/clang/dist/www/comparison.html Modified: vendor/clang/dist/include/clang/AST/ASTContext.h == --- vendor/clang/dist/include/clang/AST/ASTContext.hThu Oct 15 06:12:04 2009(r198111) +++ vendor/clang/dist/include/clang/AST/ASTContext.hThu Oct 15 07:44:25 2009(r198112) @@ -174,7 +174,7 @@ class ASTContext { /// This mapping will contain an entry that maps from the VarDecl for /// Xint::value to the corresponding VarDecl for XT::value (within the /// class template X) and will be marked TSK_ImplicitInstantiation. - llvm::DenseMapVarDecl *, MemberSpecializationInfo * + llvm::DenseMapconst VarDecl *, MemberSpecializationInfo * InstantiatedFromStaticDataMember; /// \brief Keeps track of the UnresolvedUsingDecls from which UsingDecls @@ -267,7 +267,8 @@ public: /// \brief If this variable is an instantiated static data member of a /// class template specialization, returns the templated static data member /// from which it was instantiated. - MemberSpecializationInfo *getInstantiatedFromStaticDataMember(VarDecl *Var); + MemberSpecializationInfo *getInstantiatedFromStaticDataMember( + const VarDecl *Var); /// \brief Note that the static data member \p Inst is an instantiation of /// the static data member template \p Tmpl of a class template. Modified: vendor/clang/dist/include/clang/AST/Decl.h == --- vendor/clang/dist/include/clang/AST/Decl.h Thu Oct 15 06:12:04 2009 (r198111) +++ vendor/clang/dist/include/clang/AST/Decl.h Thu Oct 15 07:44:25 2009 (r198112) @@ -584,19 +584,23 @@ public: return getDeclContext()-isRecord(); } + /// \brief Determine whether this is or was instantiated from an out-of-line + /// definition of a static data member. + bool isOutOfLine() const; + /// \brief If this variable is an instantiated static data member of a /// class template specialization, returns the templated static data member /// from which it was instantiated. - VarDecl *getInstantiatedFromStaticDataMember(); + VarDecl *getInstantiatedFromStaticDataMember() const; /// \brief If this variable is a static data member, determine what kind of /// template specialization or instantiation this is. - TemplateSpecializationKind getTemplateSpecializationKind(); + TemplateSpecializationKind getTemplateSpecializationKind() const; /// \brief If this variable is an instantiation of a static data member of a /// class template specialization, retrieves the member specialization /// information. - MemberSpecializationInfo *getMemberSpecializationInfo(); + MemberSpecializationInfo *getMemberSpecializationInfo() const; /// \brief For a static data member that was instantiated from a static /// data member of a class template, set the template specialiation kind. Modified: vendor/clang/dist/include/clang/AST/TypeLoc.h == --- vendor/clang/dist/include/clang/AST/TypeLoc.h Thu Oct 15 06:12:04 2009
svn commit: r198113 - in vendor/llvm/dist: include/llvm include/llvm/ADT include/llvm/CodeGen include/llvm/CompilerDriver include/llvm/ExecutionEngine include/llvm/Support lib/Analysis lib/CodeGen ...
Author: rdivacky Date: Thu Oct 15 07:47:49 2009 New Revision: 198113 URL: http://svn.freebsd.org/changeset/base/198113 Log: Update llvm to r84175. Modified: vendor/llvm/dist/include/llvm/ADT/DenseMapInfo.h vendor/llvm/dist/include/llvm/ADT/ImmutableSet.h vendor/llvm/dist/include/llvm/CodeGen/ScheduleDAG.h vendor/llvm/dist/include/llvm/CompilerDriver/CompilationGraph.h vendor/llvm/dist/include/llvm/ExecutionEngine/JITMemoryManager.h vendor/llvm/dist/include/llvm/Metadata.h vendor/llvm/dist/include/llvm/Operator.h vendor/llvm/dist/include/llvm/Pass.h vendor/llvm/dist/include/llvm/Support/CommandLine.h vendor/llvm/dist/include/llvm/Support/DebugLoc.h vendor/llvm/dist/include/llvm/Support/raw_ostream.h vendor/llvm/dist/lib/Analysis/BasicAliasAnalysis.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfDebug.cpp vendor/llvm/dist/lib/CodeGen/AsmPrinter/DwarfDebug.h vendor/llvm/dist/lib/CodeGen/CodePlacementOpt.cpp vendor/llvm/dist/lib/CodeGen/LiveVariables.cpp vendor/llvm/dist/lib/CodeGen/MachineInstr.cpp vendor/llvm/dist/lib/CodeGen/PrologEpilogInserter.cpp vendor/llvm/dist/lib/Target/ARM/ARMConstantIslandPass.cpp vendor/llvm/dist/lib/Target/ARM/ARMISelDAGToDAG.cpp vendor/llvm/dist/lib/Target/ARM/ARMInstrInfo.td vendor/llvm/dist/lib/Target/ARM/ARMInstrNEON.td vendor/llvm/dist/lib/Transforms/Scalar/InstructionCombining.cpp vendor/llvm/dist/test/Analysis/BasicAA/2009-10-13-AtomicModRef.ll vendor/llvm/dist/test/CodeGen/X86/avoid-loop-align-2.ll vendor/llvm/dist/test/CodeGen/X86/avoid-loop-align.ll vendor/llvm/dist/tools/opt/opt.cpp vendor/llvm/dist/unittests/ExecutionEngine/JIT/JITTest.cpp Modified: vendor/llvm/dist/include/llvm/ADT/DenseMapInfo.h == --- vendor/llvm/dist/include/llvm/ADT/DenseMapInfo.hThu Oct 15 07:44:25 2009(r198112) +++ vendor/llvm/dist/include/llvm/ADT/DenseMapInfo.hThu Oct 15 07:47:49 2009(r198113) @@ -89,7 +89,7 @@ template struct DenseMapInfounsigned static inline unsigned long long getEmptyKey() { return ~0ULL; } static inline unsigned long long getTombstoneKey() { return ~0ULL - 1ULL; } static unsigned getHashValue(const unsigned long long Val) { -return Val * 37ULL; +return (unsigned)Val * 37ULL; } static bool isPod() { return true; } static bool isEqual(const unsigned long long LHS, Modified: vendor/llvm/dist/include/llvm/ADT/ImmutableSet.h == --- vendor/llvm/dist/include/llvm/ADT/ImmutableSet.hThu Oct 15 07:44:25 2009(r198112) +++ vendor/llvm/dist/include/llvm/ADT/ImmutableSet.hThu Oct 15 07:47:49 2009(r198113) @@ -988,8 +988,8 @@ public: BumpPtrAllocator getAllocator() { return F.getAllocator(); } private: -Factory(const Factory RHS) {}; -void operator=(const Factory RHS) {}; +Factory(const Factory RHS) {} +void operator=(const Factory RHS) {} }; friend class Factory; Modified: vendor/llvm/dist/include/llvm/CodeGen/ScheduleDAG.h == --- vendor/llvm/dist/include/llvm/CodeGen/ScheduleDAG.h Thu Oct 15 07:44:25 2009(r198112) +++ vendor/llvm/dist/include/llvm/CodeGen/ScheduleDAG.h Thu Oct 15 07:47:49 2009(r198113) @@ -500,8 +500,8 @@ namespace llvm { /// ComputeOperandLatency - Override dependence edge latency using /// operand use/def information /// -virtual void ComputeOperandLatency(SUnit *Def, SUnit *Use, - SDep dep) const { }; +virtual void ComputeOperandLatency(SUnit *, SUnit *, + SDep) const { } /// Schedule - Order nodes according to selected style, filling /// in the Sequence member. Modified: vendor/llvm/dist/include/llvm/CompilerDriver/CompilationGraph.h == --- vendor/llvm/dist/include/llvm/CompilerDriver/CompilationGraph.h Thu Oct 15 07:44:25 2009(r198112) +++ vendor/llvm/dist/include/llvm/CompilerDriver/CompilationGraph.h Thu Oct 15 07:47:49 2009(r198113) @@ -43,7 +43,7 @@ namespace llvmc { class Edge : public llvm::RefCountedBaseVPTREdge { public: Edge(const std::string T) : ToolName_(T) {} -virtual ~Edge() {}; +virtual ~Edge() {} const std::string ToolName() const { return ToolName_; } virtual unsigned Weight(const InputLanguagesSet InLangs) const = 0; Modified: vendor/llvm/dist/include/llvm/ExecutionEngine/JITMemoryManager.h == --- vendor/llvm/dist/include/llvm/ExecutionEngine/JITMemoryManager.hThu Oct 15 07:44:25 2009(r198112) +++ vendor/llvm/dist/include/llvm/ExecutionEngine/JITMemoryManager.hThu Oct 15 07:47:49 2009
Re: svn commit: r198113 - in vendor/llvm/dist: include/llvm include/llvm/ADT include/llvm/CodeGen include/llvm/CompilerDriver include/llvm/ExecutionEngine include/llvm/Support lib/Analysis lib/CodeGen
On Thu, Oct 15, 2009 at 07:47:49AM +, Roman Divacky wrote: Author: rdivacky Date: Thu Oct 15 07:47:49 2009 New Revision: 198113 URL: http://svn.freebsd.org/changeset/base/198113 Log: Update llvm to r84175. it's r84176 actually. ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r198114 - in head/release/doc: . en_US.ISO8859-1/errata share/mk share/sgml
Author: hrs Date: Thu Oct 15 07:58:01 2009 New Revision: 198114 URL: http://svn.freebsd.org/changeset/base/198114 Log: Bump version numbers and update descriptions for the 9-CURRENT world. The %[no]include.historic knobs are removed because they are not used for a long time. Modified: head/release/doc/README head/release/doc/en_US.ISO8859-1/errata/article.sgml head/release/doc/share/mk/doc.relnotes.mk head/release/doc/share/sgml/release.dsl head/release/doc/share/sgml/release.ent Modified: head/release/doc/README == --- head/release/doc/README Thu Oct 15 07:47:49 2009(r198113) +++ head/release/doc/README Thu Oct 15 07:58:01 2009(r198114) @@ -99,9 +99,10 @@ element will be included. For example: para arch=sparc64SPARC64-specific text/para -The currently-supported architectures are i386, sparc64, and -ia64. An element may appear for multiple architectures by specifying -a comma-separated list of architectures (i.e. arch=sparc64,ia64). +The currently-supported architectures are amd64, arm, i386, ia64, +pc98, powerpc, and sparc64. An element may appear for multiple +architectures by specifying a comma-separated list of architectures +(i.e. arch=sparc64,ia64). When creating a translation, make a new directory under this directory with a language code (paralleling the DocProj directory Modified: head/release/doc/en_US.ISO8859-1/errata/article.sgml == --- head/release/doc/en_US.ISO8859-1/errata/article.sgmlThu Oct 15 07:47:49 2009(r198113) +++ head/release/doc/en_US.ISO8859-1/errata/article.sgmlThu Oct 15 07:58:01 2009(r198114) @@ -16,7 +16,6 @@ !ENTITY % release PUBLIC -//FreeBSD//ENTITIES Release Specification//EN %release; -!ENTITY release.bugfix 5.2.1-RELEASE ] article Modified: head/release/doc/share/mk/doc.relnotes.mk == --- head/release/doc/share/mk/doc.relnotes.mk Thu Oct 15 07:47:49 2009 (r198113) +++ head/release/doc/share/mk/doc.relnotes.mk Thu Oct 15 07:58:01 2009 (r198114) @@ -11,23 +11,6 @@ DSLHTML?=${RELN_ROOT}/share/sgml/defaul DSLPRINT?= ${RELN_ROOT}/share/sgml/default.dsl # -# Tweakable Makefile variables -# -# INCLUDE_HISTORIC Used by relnotes document only. When set, -# causes all release notes entries to be printed, -# even those marked as historic. If not set -# (the default), only print non-historic -# release note entries. To designate a release -# note entry as historic, add a role=historic -# attribute to the applicable element(s). -# -.if defined(INCLUDE_HISTORIC) -JADEFLAGS+=-iinclude.historic -.else -JADEFLAGS+=-ino.include.historic -.endif - -# # Automatic device list generation: # .if exists(${RELN_ROOT}/../man4) Modified: head/release/doc/share/sgml/release.dsl == --- head/release/doc/share/sgml/release.dsl Thu Oct 15 07:47:49 2009 (r198113) +++ head/release/doc/share/sgml/release.dsl Thu Oct 15 07:58:01 2009 (r198114) @@ -3,8 +3,6 @@ !DOCTYPE style-sheet PUBLIC -//James Clark//DTD DSSSL Style Sheet//EN [ !ENTITY % output.html IGNORE !ENTITY % output.printIGNORE -!ENTITY % include.historicIGNORE -!ENTITY % no.include.historic IGNORE !ENTITY freebsd.dsl PUBLIC -//FreeBSD//DOCUMENT DocBook Stylesheet//EN CDATA DSSSL !ENTITY % release.ent PUBLIC -//FreeBSD//ENTITIES Release Specification//EN %release.ent; @@ -14,14 +12,6 @@ style-specification use=docbook style-specification-body -; Configure behavior of this stylesheet -![ %include.historic; [ - (define %include-historic% #t) -]] -![ %no.include.historic; [ - (define %include-historic% #f) -]] - ; String manipulation functions (define (split-string-to-list STR) ;; return list of STR separated with char #\ or #\, @@ -54,36 +44,6 @@ ((equal? STR (car s)) #t) (else (loop (cdr s)) -; Deal with conditional inclusion of text via entities. -(default - (let* ((role (attribute-string (normalize role))) -(for-arch (entity-text arch))) -(cond - - ;; If role=historic, and we're not printing historic things, then - ;; don't output this element. - ((and (equal? role historic) - (not %include-historic%)) - (empty-sosofo)) - - ;; None of the above - (else (next-match) - -(mode qandatoc - (default -(let* ((role (attribute-string (normalize role))) - (for-arch (entity-text arch))) - (cond - - ;; If role=historic, and we're not printing historic things, then - ;; don't output this element. - ((and
svn commit: r198118 - head/usr.bin/netstat
Author: rwatson Date: Thu Oct 15 10:31:24 2009 New Revision: 198118 URL: http://svn.freebsd.org/changeset/base/198118 Log: Print routing statistics as unsigned short rather than unsigned int, otherwise sign extension leads to unlikely values when in the negative range of the signed short structure fields that hold the statistics. The type used to hold routing statistics is arguably also incorrect. MFC after:3 days Modified: head/usr.bin/netstat/route.c Modified: head/usr.bin/netstat/route.c == --- head/usr.bin/netstat/route.cThu Oct 15 08:55:43 2009 (r198117) +++ head/usr.bin/netstat/route.cThu Oct 15 10:31:24 2009 (r198118) @@ -1008,11 +1008,11 @@ rt_stats(u_long rtsaddr, u_long rttaddr) #definep(f, m) if (rtstat.f || sflag = 1) \ printf(m, rtstat.f, plural(rtstat.f)) - p(rts_badredirect, \t%u bad routing redirect%s\n); - p(rts_dynamic, \t%u dynamically created route%s\n); - p(rts_newgateway, \t%u new gateway%s due to redirects\n); - p(rts_unreach, \t%u destination%s found unreachable\n); - p(rts_wildcard, \t%u use%s of a wildcard route\n); + p(rts_badredirect, \t%hu bad routing redirect%s\n); + p(rts_dynamic, \t%hu dynamically created route%s\n); + p(rts_newgateway, \t%hu new gateway%s due to redirects\n); + p(rts_unreach, \t%hu destination%s found unreachable\n); + p(rts_wildcard, \t%hu use%s of a wildcard route\n); #undef p if (rttrash || sflag = 1) ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r198125 - head/share/man/man4
Author: brueffer Date: Thu Oct 15 11:32:05 2009 New Revision: 198125 URL: http://svn.freebsd.org/changeset/base/198125 Log: Use our standard section 4 SYNOPSIS. MFC after:3 days Modified: head/share/man/man4/sbp_targ.4 head/share/man/man4/targ.4 Modified: head/share/man/man4/sbp_targ.4 == --- head/share/man/man4/sbp_targ.4 Thu Oct 15 11:12:53 2009 (r198124) +++ head/share/man/man4/sbp_targ.4 Thu Oct 15 11:32:05 2009 (r198125) @@ -38,16 +38,24 @@ .Nm sbp_targ .Nd Serial Bus Protocol 2 (SBP-2) Target Mode devices driver .Sh SYNOPSIS -.Cd kldload firewire -.Cd kldload cam -.Cd kldload sbp_targ -.Pp -or -.Pp +To compile this driver into the kernel, +place the following lines in your +kernel configuration file: +.Bd -ragged -offset indent .Cd device sbp_targ .Cd device firewire .Cd device scbus .Cd device targ +.Ed +.Pp +Alternatively, to load the driver as a +module at boot time, place the following lines in +.Xr loader.conf 5 : +.Bd -literal -offset indent +firewire_load=YES +cam_load=YES +sbp_targ_loadYES +.Ed .Sh DESCRIPTION The .Nm Modified: head/share/man/man4/targ.4 == --- head/share/man/man4/targ.4 Thu Oct 15 11:12:53 2009(r198124) +++ head/share/man/man4/targ.4 Thu Oct 15 11:32:05 2009(r198125) @@ -31,7 +31,12 @@ .Nm targ .Nd SCSI target emulator driver .Sh SYNOPSIS -.Cd device targ +To compile this driver into the kernel, +place the following line in your +kernel configuration file: +.Bd -ragged -offset indent +.Cd device targ +.Ed .Sh DESCRIPTION The .Nm ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r198133 - in stable/8/sys: . amd64/include/xen cddl/contrib/opensolaris contrib/dev/acpica contrib/pf dev/xen/xenpci nfsclient
Author: rwatson Date: Thu Oct 15 14:39:59 2009 New Revision: 198133 URL: http://svn.freebsd.org/changeset/base/198133 Log: Add a MODULE_DEPEND() on the NFS client from dtnfsclient so that dtnfsclient can access NFS client symbols. Discussed with: kib Reported by: markm Approved by: re (kib) Modified: stable/8/sys/ (props changed) stable/8/sys/amd64/include/xen/ (props changed) stable/8/sys/cddl/contrib/opensolaris/ (props changed) stable/8/sys/contrib/dev/acpica/ (props changed) stable/8/sys/contrib/pf/ (props changed) stable/8/sys/dev/xen/xenpci/ (props changed) stable/8/sys/nfsclient/nfs_kdtrace.c Modified: stable/8/sys/nfsclient/nfs_kdtrace.c == --- stable/8/sys/nfsclient/nfs_kdtrace.cThu Oct 15 14:18:35 2009 (r198132) +++ stable/8/sys/nfsclient/nfs_kdtrace.cThu Oct 15 14:39:59 2009 (r198133) @@ -543,3 +543,4 @@ DEV_MODULE(dtnfsclient, dtnfsclient_mode MODULE_VERSION(dtnfsclient, 1); MODULE_DEPEND(dtnfsclient, dtrace, 1, 1, 1); MODULE_DEPEND(dtnfsclient, opensolaris, 1, 1, 1); +MODULE_DEPEND(dtnfsclient, nfs, 1, 1, 1); ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r198134 - in head: share/man/man9 sys/amd64/amd64 sys/amd64/include sys/i386/i386 sys/i386/include sys/kern sys/sys
Author: jhb Date: Thu Oct 15 14:54:35 2009 New Revision: 198134 URL: http://svn.freebsd.org/changeset/base/198134 Log: Add a facility for associating optional descriptions with active interrupt handlers. This is primarily intended as a way to allow devices that use multiple interrupts (e.g. MSI) to meaningfully distinguish the various interrupt handlers. - Add a new BUS_DESCRIBE_INTR() method to the bus interface to associate a description with an active interrupt handler setup by BUS_SETUP_INTR. It has a default method (bus_generic_describe_intr()) which simply passes the request up to the parent device. - Add a bus_describe_intr() wrapper around BUS_DESCRIBE_INTR() that supports printf(9) style formatting using var args. - Reserve MAXCOMLEN bytes in the intr_handler structure to hold the name of an interrupt handler and copy the name passed to intr_event_add_handler() into that buffer instead of just saving the pointer to the name. - Add a new intr_event_describe_handler() which appends a description string to an interrupt handler's name. - Implement support for interrupt descriptions on amd64 and i386 by having the nexus(4) driver supply a custom bus_describe_intr method that invokes a new intr_describe() MD routine which in turn looks up the associated interrupt event and invokes intr_event_describe_handler(). Requested by: many Reviewed by: scottl MFC after:2 weeks Added: head/share/man/man9/BUS_DESCRIBE_INTR.9 (contents, props changed) Modified: head/share/man/man9/Makefile head/sys/amd64/amd64/intr_machdep.c head/sys/amd64/amd64/nexus.c head/sys/amd64/include/intr_machdep.h head/sys/i386/i386/intr_machdep.c head/sys/i386/i386/nexus.c head/sys/i386/include/intr_machdep.h head/sys/kern/bus_if.m head/sys/kern/kern_intr.c head/sys/kern/subr_bus.c head/sys/sys/bus.h head/sys/sys/interrupt.h Added: head/share/man/man9/BUS_DESCRIBE_INTR.9 == --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ head/share/man/man9/BUS_DESCRIBE_INTR.9 Thu Oct 15 14:54:35 2009 (r198134) @@ -0,0 +1,104 @@ +.\ -*- nroff -*- +.\ +.\ Copyright (c) 2009 Advanced Computing Technologies LLC +.\ Written by: John H. Baldwin j...@freebsd.org +.\ All rights reserved. +.\ +.\ Redistribution and use in source and binary forms, with or without +.\ modification, are permitted provided that the following conditions +.\ are met: +.\ 1. Redistributions of source code must retain the above copyright +.\notice, this list of conditions and the following disclaimer. +.\ 2. Redistributions in binary form must reproduce the above copyright +.\notice, this list of conditions and the following disclaimer in the +.\documentation and/or other materials provided with the distribution. +.\ +.\ THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +.\ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\ ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +.\ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\ OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\ LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\ OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\ SUCH DAMAGE. +.\ +.\ $FreeBSD$ +.\ +.Dd October 14, 2009 +.Dt BUS_DESCRIBE_INTR 9 +.Os +.Sh NAME +.Nm BUS_DESCRIBE_INTR , +.Nm bus_describe_intr +.Nd associate a description with an active interrupt handler +.Sh SYNOPSIS +.In sys/param.h +.In sys/bus.h +.Ft int +.Fo BUS_BIND_INTR +.Fa device_t dev device_t child struct resource *irq void *cookie +.Fa const char *descr +.Fc +.Ft int +.Fo bus_describe_intr +.Fa device_t dev struct resource *irq void *cookie const char *fmt +.Fa ... +.Fc +.Sh DESCRIPTION +The +.Fn BUS_DESCRIBE_INTR +method associates a description with an active interrupt handler. +The +.Fa cookie +parameter must be the value returned by a successful call to +.Xr BUS_SETUP_INTR 9 +for the interrupt +.Fa irq . +.Pp +The +.Fn bus_describe_intr +function is a simple wrapper around +.Fn BUS_DESCRIBE_INTR . +As a convenience, +.Fn bus_describe_intr +allows the caller to use +.Xr printf 9 +style formatting to build the description string using +.Fa fmt . +.Pp +When an interrupt handler is established by +.Xr BUS_SETUP_INTR 9 , +the handler is named after the device the handler is established for. +This name is then used in various places such as interrupt statistics +displayed by +.Xr systat 1 +and +.Xr vmstat 8 . +For devices that use a single interrupt, +the device name is
svn commit: r198135 - head/sys/sys
Author: jhb Date: Thu Oct 15 14:55:11 2009 New Revision: 198135 URL: http://svn.freebsd.org/changeset/base/198135 Log: Style fixes to the function prototypes for bus_alloc_resources() and bus_release_resources(). Modified: head/sys/sys/bus.h Modified: head/sys/sys/bus.h == --- head/sys/sys/bus.h Thu Oct 15 14:54:35 2009(r198134) +++ head/sys/sys/bus.h Thu Oct 15 14:55:11 2009(r198135) @@ -347,8 +347,10 @@ struct resource_spec { int flags; }; -int bus_alloc_resources(device_t dev, struct resource_spec *rs, struct resource **res); -void bus_release_resources(device_t dev, const struct resource_spec *rs, struct resource **res); +intbus_alloc_resources(device_t dev, struct resource_spec *rs, + struct resource **res); +void bus_release_resources(device_t dev, const struct resource_spec *rs, + struct resource **res); struct resource *bus_alloc_resource(device_t dev, int type, int *rid, u_long start, u_long end, u_long count, ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
Re: svn commit: r197969 - head/sys/conf
In message: 200910150833.54252@freebsd.org John Baldwin j...@freebsd.org writes: : On Wednesday 14 October 2009 6:11:15 pm M. Warner Losh wrote: : In message: 200910141738.43910@freebsd.org : John Baldwin j...@freebsd.org writes: : : On Wednesday 14 October 2009 5:20:38 pm Marcel Moolenaar wrote: : : : : On Oct 14, 2009, at 1:45 PM, John Baldwin wrote: : : : : On Wednesday 14 October 2009 2:35:16 pm Marcel Moolenaar wrote: : : On Oct 14, 2009, at 10:39 AM, Warner Losh wrote: : : : : I can't be more clear than this. You keep ignoring me, and it is : : very : : frustrating. : : : : I'm not ignoring you. I'm still talking. You simply haven't convinced : : me. While it's possible (likely?) that I don't understand the issues, : : all you've achieved so far is that I'm more convinced that limiting : : orm(4) to i386 and amd64 is the right thing, because the alternative : : is not at all appealing. : : : : The problem is that the : : powerpc and itanium isa modules allow memory ranges that shouldn't : : be : : allowed. That's the platform specific code that needs to be fixed. : : : : isa_set_resource() is MI code and it happily adds whatever resources : : a driver wants. The only chance MD code has is to fail the : : allocation, : : but since the whole ISA code bypasses the newbus hierarchy, there's : : no way we know in the isa MD code what is valid and what isn't unless : : we add kluges to platform code. : : : : If you want to fix it for real, does that mean fix it for real or : : does that mean add kluges to platform code? : : : : Shouldn't we have ISA bridges obtain the set of valid resources : : from their parent in the newbus hierarchy? : : : : Hmm, can we even know that? PCI-ISA bridges in x86 at least don't : : have any : : I/O limit registers like PCI-PCI bridges, instead they are : : subtractively : : decoded, i.e. they eat any memory request that no one else claims. : : : : The key here being requests that reach the PCI-ISA bridge. It's entirely : : platform specific which I/O memory addresses generated by the CPU gets : : decoded and forwarded in such a way that it's visible to the PCI-ISA : : bridge. This is what needs to be obtained from the parent in the newbus : : hierarchy. Rather than hardcoding [0xC .. 0x10 as the ISA : : option : : ROM memory range, it should be something like [isa_mem_base+0xC .. : : isa_mem_base + 0x10 or even [isa_rom_base .. isa_rom_base + : : 0x4. : : : : That might certainly be a reasonable IVAR for isab(4) to provide to isa(4): a : : ROM base. However, orm(4) should be enabled for all ISA bridges assuming : : that is fixed. OTOH, the way many bus drivers I've seen handle this so far : : is to change the base address of SYS_RES_MEMORY objects as they pass through : : the relevant bridge so that the actual memory address is properly adjusted : : when it gets to the equivalent of the nexus. This is how many of the : : Foo-PCI bridges in arm that I've looked at work, and I think this is more : : inline with Warner's original patch which is to allow the various : : platform-specific ISA bridge drivers reject memory ranges they do not decode : : and provide any needed adjustments to ranges they do decode to transform them : : into suitable resources for their parent. Then orm(4) would just see it's : : attempts to do bus_alloc_resource() fail and end up DTRT. Given that, I do : : think this logic belongs in the ISA bridge drivers rather than in individual : : ISA drivers. We don't make ISA peripheral drivers add an 'isa_mem_base' or : : equivalent to their I/O resources, and in terms of I/O resources, orm(4) is : : just a special blackhole device (much like the ACPI or PnPBIOS system : : resource devices, or the ram0 or apic0 devices on x86). : : This is exactly what I've been trying to say: the memory addresses : that orm is using are ISA BUS addresses. These just happen to map 1:1 : on x86, but will map to something else on other platforms. But our : kernel API is that the driver requests the bus address, and that any : necessary translation happen in the bus_space layer. : : I disagree that it belongs entirely in the isa bridge drivers. They : may communicate information to the bus_space implementation, but it is : bus_space that ultimately does this translation. : : I think it actually depends on the platform as to where it belongs. If you : have some Foo-ISA bridge that uses a window on the Foo bus to map ISA space, : then I think it makes sense to handle that in the Foo-ISA bridge, especially : if it is a relocatable window. If the ISA bus is instead assigned a fixed : range in the system address space then that probably belongs in the bus_space : support. I'd think it would be the opposite.
Re: svn commit: r197969 - head/sys/conf
On Thursday 15 October 2009 10:59:10 am M. Warner Losh wrote: In message: 200910150833.54252@freebsd.org John Baldwin j...@freebsd.org writes: : On Wednesday 14 October 2009 6:11:15 pm M. Warner Losh wrote: : In message: 200910141738.43910@freebsd.org : John Baldwin j...@freebsd.org writes: : : On Wednesday 14 October 2009 5:20:38 pm Marcel Moolenaar wrote: : : : : On Oct 14, 2009, at 1:45 PM, John Baldwin wrote: : : : : On Wednesday 14 October 2009 2:35:16 pm Marcel Moolenaar wrote: : : On Oct 14, 2009, at 10:39 AM, Warner Losh wrote: : : : : I can't be more clear than this. You keep ignoring me, and it is : : very : : frustrating. : : : : I'm not ignoring you. I'm still talking. You simply haven't convinced : : me. While it's possible (likely?) that I don't understand the issues, : : all you've achieved so far is that I'm more convinced that limiting : : orm(4) to i386 and amd64 is the right thing, because the alternative : : is not at all appealing. : : : : The problem is that the : : powerpc and itanium isa modules allow memory ranges that shouldn't : : be : : allowed. That's the platform specific code that needs to be fixed. : : : : isa_set_resource() is MI code and it happily adds whatever resources : : a driver wants. The only chance MD code has is to fail the : : allocation, : : but since the whole ISA code bypasses the newbus hierarchy, there's : : no way we know in the isa MD code what is valid and what isn't unless : : we add kluges to platform code. : : : : If you want to fix it for real, does that mean fix it for real or : : does that mean add kluges to platform code? : : : : Shouldn't we have ISA bridges obtain the set of valid resources : : from their parent in the newbus hierarchy? : : : : Hmm, can we even know that? PCI-ISA bridges in x86 at least don't : : have any : : I/O limit registers like PCI-PCI bridges, instead they are : : subtractively : : decoded, i.e. they eat any memory request that no one else claims. : : : : The key here being requests that reach the PCI-ISA bridge. It's entirely : : platform specific which I/O memory addresses generated by the CPU gets : : decoded and forwarded in such a way that it's visible to the PCI-ISA : : bridge. This is what needs to be obtained from the parent in the newbus : : hierarchy. Rather than hardcoding [0xC .. 0x10 as the ISA : : option : : ROM memory range, it should be something like [isa_mem_base+0xC .. : : isa_mem_base + 0x10 or even [isa_rom_base .. isa_rom_base + : : 0x4. : : : : That might certainly be a reasonable IVAR for isab(4) to provide to isa(4): a : : ROM base. However, orm(4) should be enabled for all ISA bridges assuming : : that is fixed. OTOH, the way many bus drivers I've seen handle this so far : : is to change the base address of SYS_RES_MEMORY objects as they pass through : : the relevant bridge so that the actual memory address is properly adjusted : : when it gets to the equivalent of the nexus. This is how many of the : : Foo-PCI bridges in arm that I've looked at work, and I think this is more : : inline with Warner's original patch which is to allow the various : : platform-specific ISA bridge drivers reject memory ranges they do not decode : : and provide any needed adjustments to ranges they do decode to transform them : : into suitable resources for their parent. Then orm(4) would just see it's : : attempts to do bus_alloc_resource() fail and end up DTRT. Given that, I do : : think this logic belongs in the ISA bridge drivers rather than in individual : : ISA drivers. We don't make ISA peripheral drivers add an 'isa_mem_base' or : : equivalent to their I/O resources, and in terms of I/O resources, orm(4) is : : just a special blackhole device (much like the ACPI or PnPBIOS system : : resource devices, or the ram0 or apic0 devices on x86). : : This is exactly what I've been trying to say: the memory addresses : that orm is using are ISA BUS addresses. These just happen to map 1:1 : on x86, but will map to something else on other platforms. But our : kernel API is that the driver requests the bus address, and that any : necessary translation happen in the bus_space layer. : : I disagree that it belongs entirely in the isa bridge drivers. They : may communicate information to the bus_space implementation, but it is : bus_space that ultimately does this translation. : : I think it actually depends on the platform as to where it belongs. If you : have some Foo-ISA bridge that uses a window on the Foo bus to map ISA space, : then I think it makes sense to handle that in the Foo-ISA bridge, especially : if it is a relocatable window. If
svn commit: r198136 - head/tools/tools/netrate/netsend
Author: luigi Date: Thu Oct 15 15:30:41 2009 New Revision: 198136 URL: http://svn.freebsd.org/changeset/base/198136 Log: Support the specification of a range of destination ports e.g. netsend 127.0.0.1 - [payloadsize] [packet_rate] [duration] This is useful to test the behaviour of systems that do some kind of flow classifications and so exhibit different behaviour depending on the number of flows that hit them. I plan to add a similar extension to sweep on a range of IP addresses, so we can issue a single command to flood (obviously, for testing purposes!) a number of different destinations. When there is only one destination, we do a preliminary connect() of the socket so we can use send() instead of sendto(). When we have multiple ports, the socket is not connect()'ed and we do a sendto() instead. There is a performance hit in this case, as the throughput on the loopback interface (with a firewall rule that blocks the transmission) goes down from 900kpps to 490kpps on my test machine. If the number of different destinations is limited, one option to explore is to have multiple connect()ed sockets. MFC after:1 month Modified: head/tools/tools/netrate/netsend/netsend.c Modified: head/tools/tools/netrate/netsend/netsend.c == --- head/tools/tools/netrate/netsend/netsend.c Thu Oct 15 14:55:11 2009 (r198135) +++ head/tools/tools/netrate/netsend/netsend.c Thu Oct 15 15:30:41 2009 (r198136) @@ -39,12 +39,23 @@ #include stdlib.h #include string.h +/* program arguments */ +struct _a { + int s; + struct timespec interval; + int port, port_max; + long duration; + struct sockaddr_in sin; + int packet_len; + void *packet; +}; + static void usage(void) { fprintf(stderr, - netsend [ip] [port] [payloadsize] [rate] [duration]\n); + netsend [ip] [port[-port_max]] [payloadsize] [packet_rate] [duration]\n); exit(-1); } @@ -114,10 +125,12 @@ wait_time(struct timespec ts, struct tim * Calculate a second-aligned starting time for the packet stream. Busy * wait between our calculated interval and dropping the provided packet * into the socket. If we hit our duration limit, bail. + * We sweep the ports from a-port to a-port_max included. + * If the two ports are the same we connect() the socket upfront, which + * almost halves the cost of the sendto() call. */ static int -timing_loop(int s, struct timespec interval, long duration, u_char *packet, -u_int packet_len) +timing_loop(struct _a *a) { struct timespec nexttime, starttime, tmptime; long long waited; @@ -127,18 +140,19 @@ timing_loop(int s, struct timespec inter /* do not call gettimeofday more than every 20us */ long minres_ns = 2; int ic, gettimeofday_cycles; + int cur_port; if (clock_getres(CLOCK_REALTIME, tmptime) == -1) { perror(clock_getres); return (-1); } - if (timespec_ge(tmptime, interval)) + if (timespec_ge(tmptime, a-interval)) fprintf(stderr, warning: interval (%jd.%09ld) less than resolution (%jd.%09ld)\n, - (intmax_t)interval.tv_sec, interval.tv_nsec, + (intmax_t)a-interval.tv_sec, a-interval.tv_nsec, (intmax_t)tmptime.tv_sec, tmptime.tv_nsec); - if (tmptime.tv_nsec minres_ns) { + if (a-interval.tv_nsec minres_ns) { gettimeofday_cycles = minres_ns/(tmptime.tv_nsec + 1); fprintf(stderr, calling time every %d cycles\n, gettimeofday_cycles); @@ -156,14 +170,23 @@ timing_loop(int s, struct timespec inter if (wait_time(starttime, NULL, NULL) == -1) return (-1); nexttime = starttime; - finishtime = starttime.tv_sec + duration; + finishtime = starttime.tv_sec + a-duration; send_errors = send_calls = 0; counter = 0; waited = 0; ic = gettimeofday_cycles; + cur_port = a-port; + if (a-port == a-port_max) { + if (connect(a-s, (struct sockaddr *)a-sin, sizeof(a-sin))) { + perror(connect); + return (-1); + } + } while (1) { - timespec_add(nexttime, interval); + int ret; + + timespec_add(nexttime, a-interval); if (--ic = 0) { ic = gettimeofday_cycles; if (wait_time(nexttime, tmptime, waited) == -1) @@ -178,17 +201,28 @@ timing_loop(int s, struct timespec inter * previous send, the error will turn up the current send * operation, causing the current sequence number also to be * skipped. +* The
Re: svn commit: r198136 - head/tools/tools/netrate/netsend
On Thu, 15 Oct 2009, Luigi Rizzo wrote: Support the specification of a range of destination ports e.g. netsend 127.0.0.1 - [payloadsize] [packet_rate] [duration] All sounds very useful -- consider making some of these changes (where appropriate) to netblast as well? Also, I can't remember if netsend / netblast know about calling bind() before commencing, but if not they should be taught. That should (a) eliminate significant overhead and (b) use weaker locking so that greater concurrency can be exploited by multiple instances. The connect(2) case should force binding, but in absence of connect(2), a per-packet source address selection decision needs to be made. Robert This is useful to test the behaviour of systems that do some kind of flow classifications and so exhibit different behaviour depending on the number of flows that hit them. I plan to add a similar extension to sweep on a range of IP addresses, so we can issue a single command to flood (obviously, for testing purposes!) a number of different destinations. When there is only one destination, we do a preliminary connect() of the socket so we can use send() instead of sendto(). When we have multiple ports, the socket is not connect()'ed and we do a sendto() instead. There is a performance hit in this case, as the throughput on the loopback interface (with a firewall rule that blocks the transmission) goes down from 900kpps to 490kpps on my test machine. If the number of different destinations is limited, one option to explore is to have multiple connect()ed sockets. MFC after: 1 month Modified: head/tools/tools/netrate/netsend/netsend.c Modified: head/tools/tools/netrate/netsend/netsend.c == --- head/tools/tools/netrate/netsend/netsend.c Thu Oct 15 14:55:11 2009 (r198135) +++ head/tools/tools/netrate/netsend/netsend.c Thu Oct 15 15:30:41 2009 (r198136) @@ -39,12 +39,23 @@ #include stdlib.h #include string.h +/* program arguments */ +struct _a { + int s; + struct timespec interval; + int port, port_max; + long duration; + struct sockaddr_in sin; + int packet_len; + void *packet; +}; + static void usage(void) { fprintf(stderr, - netsend [ip] [port] [payloadsize] [rate] [duration]\n); + netsend [ip] [port[-port_max]] [payloadsize] [packet_rate] [duration]\n); exit(-1); } @@ -114,10 +125,12 @@ wait_time(struct timespec ts, struct tim * Calculate a second-aligned starting time for the packet stream. Busy * wait between our calculated interval and dropping the provided packet * into the socket. If we hit our duration limit, bail. + * We sweep the ports from a-port to a-port_max included. + * If the two ports are the same we connect() the socket upfront, which + * almost halves the cost of the sendto() call. */ static int -timing_loop(int s, struct timespec interval, long duration, u_char *packet, -u_int packet_len) +timing_loop(struct _a *a) { struct timespec nexttime, starttime, tmptime; long long waited; @@ -127,18 +140,19 @@ timing_loop(int s, struct timespec inter /* do not call gettimeofday more than every 20us */ long minres_ns = 2; int ic, gettimeofday_cycles; + int cur_port; if (clock_getres(CLOCK_REALTIME, tmptime) == -1) { perror(clock_getres); return (-1); } - if (timespec_ge(tmptime, interval)) + if (timespec_ge(tmptime, a-interval)) fprintf(stderr, warning: interval (%jd.%09ld) less than resolution (%jd.%09ld)\n, - (intmax_t)interval.tv_sec, interval.tv_nsec, + (intmax_t)a-interval.tv_sec, a-interval.tv_nsec, (intmax_t)tmptime.tv_sec, tmptime.tv_nsec); - if (tmptime.tv_nsec minres_ns) { + if (a-interval.tv_nsec minres_ns) { gettimeofday_cycles = minres_ns/(tmptime.tv_nsec + 1); fprintf(stderr, calling time every %d cycles\n, gettimeofday_cycles); @@ -156,14 +170,23 @@ timing_loop(int s, struct timespec inter if (wait_time(starttime, NULL, NULL) == -1) return (-1); nexttime = starttime; - finishtime = starttime.tv_sec + duration; + finishtime = starttime.tv_sec + a-duration; send_errors = send_calls = 0; counter = 0; waited = 0; ic = gettimeofday_cycles; + cur_port = a-port; + if (a-port == a-port_max) { + if (connect(a-s, (struct sockaddr *)a-sin, sizeof(a-sin))) { + perror(connect); + return (-1); + } + } while (1) { - timespec_add(nexttime, interval); + int ret; + + timespec_add(nexttime, a-interval);
svn commit: r198138 - in vendor/llvm/dist: docs/HistoricalNotes examples/Kaleidoscope include/llvm include/llvm/ADT include/llvm/Analysis include/llvm/CodeGen include/llvm/Config include/llvm/Debug...
Author: rdivacky Date: Thu Oct 15 16:26:17 2009 New Revision: 198138 URL: http://svn.freebsd.org/changeset/base/198138 Log: Delete all stale files. Deleted: vendor/llvm/dist/docs/HistoricalNotes/2001-07-08-InstructionSelection.txt vendor/llvm/dist/docs/HistoricalNotes/2001-07-08-InstructionSelection2.txt vendor/llvm/dist/examples/Kaleidoscope/toy.cpp vendor/llvm/dist/include/llvm/ADT/HashExtras.h vendor/llvm/dist/include/llvm/ADT/Tree.h vendor/llvm/dist/include/llvm/Analysis/LoopVR.h vendor/llvm/dist/include/llvm/CodeGen/LazyLiveness.h vendor/llvm/dist/include/llvm/Config/alloca.h vendor/llvm/dist/include/llvm/Debugger/ vendor/llvm/dist/include/llvm/MDNode.h vendor/llvm/dist/include/llvm/Support/Annotation.h vendor/llvm/dist/include/llvm/Support/Streams.h vendor/llvm/dist/include/llvm/Target/DarwinTargetAsmInfo.h vendor/llvm/dist/include/llvm/Target/ELFTargetAsmInfo.h vendor/llvm/dist/include/llvm/Target/TargetAsmInfo.h vendor/llvm/dist/include/llvm/Target/TargetMachineRegistry.h vendor/llvm/dist/include/llvm/Transforms/Utils/InlineCost.h vendor/llvm/dist/lib/Analysis/LoopVR.cpp vendor/llvm/dist/lib/CodeGen/LazyLiveness.cpp vendor/llvm/dist/lib/CodeGen/PBQP.cpp vendor/llvm/dist/lib/CodeGen/PBQP.h vendor/llvm/dist/lib/CodeGen/RegAllocBigBlock.cpp vendor/llvm/dist/lib/CodeGen/RegAllocSimple.cpp vendor/llvm/dist/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodesEmit.cpp vendor/llvm/dist/lib/Debugger/ vendor/llvm/dist/lib/Support/Annotation.cpp vendor/llvm/dist/lib/Support/Streams.cpp vendor/llvm/dist/lib/System/LICENSE.TXT vendor/llvm/dist/lib/Target/ARM/ARMTargetAsmInfo.cpp vendor/llvm/dist/lib/Target/ARM/ARMTargetAsmInfo.h vendor/llvm/dist/lib/Target/Alpha/AlphaTargetAsmInfo.cpp vendor/llvm/dist/lib/Target/Alpha/AlphaTargetAsmInfo.h vendor/llvm/dist/lib/Target/CellSPU/SPUTargetAsmInfo.cpp vendor/llvm/dist/lib/Target/CellSPU/SPUTargetAsmInfo.h vendor/llvm/dist/lib/Target/DarwinTargetAsmInfo.cpp vendor/llvm/dist/lib/Target/ELFTargetAsmInfo.cpp vendor/llvm/dist/lib/Target/IA64/ vendor/llvm/dist/lib/Target/MSP430/MSP430AsmPrinter.cpp vendor/llvm/dist/lib/Target/MSP430/MSP430TargetAsmInfo.cpp vendor/llvm/dist/lib/Target/MSP430/MSP430TargetAsmInfo.h vendor/llvm/dist/lib/Target/Mips/MipsTargetAsmInfo.cpp vendor/llvm/dist/lib/Target/Mips/MipsTargetAsmInfo.h vendor/llvm/dist/lib/Target/PIC16/PIC16AsmPrinter.cpp vendor/llvm/dist/lib/Target/PIC16/PIC16AsmPrinter.h vendor/llvm/dist/lib/Target/PIC16/PIC16TargetAsmInfo.cpp vendor/llvm/dist/lib/Target/PIC16/PIC16TargetAsmInfo.h vendor/llvm/dist/lib/Target/PowerPC/PPCTargetAsmInfo.cpp vendor/llvm/dist/lib/Target/PowerPC/PPCTargetAsmInfo.h vendor/llvm/dist/lib/Target/Sparc/SparcTargetAsmInfo.cpp vendor/llvm/dist/lib/Target/Sparc/SparcTargetAsmInfo.h vendor/llvm/dist/lib/Target/TargetAsmInfo.cpp vendor/llvm/dist/lib/Target/TargetMachineRegistry.cpp vendor/llvm/dist/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.cpp vendor/llvm/dist/lib/Target/X86/AsmPrinter/X86ATTAsmPrinter.h vendor/llvm/dist/lib/Target/X86/AsmPrinter/X86IntelAsmPrinter.cpp vendor/llvm/dist/lib/Target/X86/AsmPrinter/X86IntelAsmPrinter.h vendor/llvm/dist/lib/Target/X86/X86TargetAsmInfo.cpp vendor/llvm/dist/lib/Target/X86/X86TargetAsmInfo.h vendor/llvm/dist/lib/Target/XCore/XCoreAsmPrinter.cpp vendor/llvm/dist/lib/Target/XCore/XCoreTargetAsmInfo.cpp vendor/llvm/dist/lib/Target/XCore/XCoreTargetAsmInfo.h vendor/llvm/dist/lib/Transforms/Scalar/GVNPRE.cpp vendor/llvm/dist/lib/Transforms/Scalar/PredicateSimplifier.cpp vendor/llvm/dist/lib/Transforms/Utils/CloneTrace.cpp vendor/llvm/dist/lib/Transforms/Utils/InlineCost.cpp vendor/llvm/dist/test/Analysis/BasicAA/licmtest.ll vendor/llvm/dist/test/Analysis/LoopDependenceAnalysis/local-array.ll vendor/llvm/dist/test/Analysis/LoopDependenceAnalysis/no-array.ll vendor/llvm/dist/test/Analysis/LoopDependenceAnalysis/siv-strong1.ll vendor/llvm/dist/test/Analysis/LoopDependenceAnalysis/siv-strong2.ll vendor/llvm/dist/test/Analysis/LoopDependenceAnalysis/ziv1.ll vendor/llvm/dist/test/Analysis/LoopDependenceAnalysis/ziv2.ll vendor/llvm/dist/test/Archive/extract_GNU.ll vendor/llvm/dist/test/Archive/extract_MacOSX.ll vendor/llvm/dist/test/Archive/extract_SVR4.ll vendor/llvm/dist/test/Archive/extract_xpg4.ll vendor/llvm/dist/test/Bindings/Ocaml/ocaml.exp vendor/llvm/dist/test/BugPoint/misopt-basictest.ll vendor/llvm/dist/test/CodeGen/ARM/branch.ll vendor/llvm/dist/test/CodeGen/ARM/vabal.ll vendor/llvm/dist/test/CodeGen/ARM/vabdl.ll vendor/llvm/dist/test/CodeGen/ARM/vacge.ll vendor/llvm/dist/test/CodeGen/ARM/vacgt.ll vendor/llvm/dist/test/CodeGen/ARM/vaddhn.ll vendor/llvm/dist/test/CodeGen/ARM/vaddl.ll vendor/llvm/dist/test/CodeGen/ARM/vaddw.ll vendor/llvm/dist/test/CodeGen/ARM/vand.ll vendor/llvm/dist/test/CodeGen/ARM/vbic.ll vendor/llvm/dist/test/CodeGen/ARM/vcls.ll vendor/llvm/dist/test/CodeGen/ARM/vclz.ll
svn commit: r198143 - in vendor/clang/dist: lib/AST lib/Frontend lib/Sema utils/test
Author: rdivacky Date: Thu Oct 15 17:07:18 2009 New Revision: 198143 URL: http://svn.freebsd.org/changeset/base/198143 Log: Delete some more files. Deleted: vendor/clang/dist/lib/AST/CFG.cpp vendor/clang/dist/lib/Frontend/ResolveLocation.cpp vendor/clang/dist/lib/Sema/SemaInherit.cpp vendor/clang/dist/lib/Sema/SemaInherit.h vendor/clang/dist/lib/Sema/SemaNamedCast.cpp vendor/clang/dist/lib/Sema/SemaTemplateInstantiateExpr.cpp vendor/clang/dist/lib/Sema/SemaTemplateInstantiateStmt.cpp vendor/clang/dist/utils/test/Makefile.multi vendor/clang/dist/utils/test/MultiTestRunner.py vendor/clang/dist/utils/test/ProgressBar.py vendor/clang/dist/utils/test/TestRunner.py ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r198148 - in head/bin: cat uuidgen
Author: ru Date: Thu Oct 15 18:17:29 2009 New Revision: 198148 URL: http://svn.freebsd.org/changeset/base/198148 Log: Removed redundant WARNS setting. Submitted by: Ulrich Spörlein Modified: head/bin/cat/Makefile head/bin/uuidgen/Makefile Modified: head/bin/cat/Makefile == --- head/bin/cat/Makefile Thu Oct 15 17:40:45 2009(r198147) +++ head/bin/cat/Makefile Thu Oct 15 18:17:29 2009(r198148) @@ -2,6 +2,5 @@ # $FreeBSD$ PROG= cat -WARNS?=6 .include bsd.prog.mk Modified: head/bin/uuidgen/Makefile == --- head/bin/uuidgen/Makefile Thu Oct 15 17:40:45 2009(r198147) +++ head/bin/uuidgen/Makefile Thu Oct 15 18:17:29 2009(r198148) @@ -1,6 +1,5 @@ # $FreeBSD$ PROG= uuidgen -WARNS?=6 .include bsd.prog.mk ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
Re: svn commit: r197969 - head/sys/conf
: implementation, but it is bus_space that ultimately does this : translation. : : I think it actually depends on the platform as to where it : belongs. If you : have some Foo-ISA bridge that uses a window on the Foo bus to : map ISA space, : then I think it makes sense to handle that in the Foo-ISA : bridge, especially : if it is a relocatable window. If the ISA bus is instead : assigned a fixed range in the system address space then that : probably belongs in the bus_space : support. I'd think it would be the opposite. bus_space needs to know how to map the request, since it is the last one involved. If this is mappable or movable, then it needs to know that too. It depends I think. If the Foo bus just maps a Foo memory resource and then sub-allocates that to satisfy ISA ranges then from bus_space's perspective it is just working with Foo resources. It would never know about ISA nor would it need to know. However, adjusting the resources that you give to a child on the way through the bridge is just assisting bus_space doing the right thing if the bus_space on that architecture just implements one or two global spaces. I think we are mostly agreeing actually. My main statement is that how ISA memory resources are actually mapped, etc. is platform-dependent but that different platforms may implement that support using different means. This is actually very interesting discussion for me because one of my pet projects is extending x86bios to support non-PC architectures. If anyone is interested, the current source tarball is here: http://people.freebsd.org/~jkim/x86bios-20091015.tar.bz2 Especially, please see the code around #ifdef X86BIOS_COMPAT_ARCH. Basically, mapping I/O ports and orm(4) is missing. We don't have to implement I/O ports but orm(4) vs. bus_space(9) is critical to make it a reality. Please consider it as a real practical example for orm, not just a blackhole driver. :-) Jung-uk Kim ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r198149 - head/sys/kern
Author: jhb Date: Thu Oct 15 18:51:19 2009 New Revision: 198149 URL: http://svn.freebsd.org/changeset/base/198149 Log: Use language more closely resembling English in a panic message. Pointy hat to:jhb Submitted by: pluknet Modified: head/sys/kern/kern_intr.c Modified: head/sys/kern/kern_intr.c == --- head/sys/kern/kern_intr.c Thu Oct 15 18:17:29 2009(r198148) +++ head/sys/kern/kern_intr.c Thu Oct 15 18:51:19 2009(r198149) @@ -684,7 +684,7 @@ intr_event_describe_handler(struct intr_ } if (ih == NULL) { mtx_unlock(ie-ie_lock); - panic(handler %p not find in interrupt event %p, cookie, ie); + panic(handler %p not found in interrupt event %p, cookie, ie); } #endif ih = cookie; ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r198150 - stable/8/sbin/mount_nfs
Author: rmacklem Date: Thu Oct 15 19:50:00 2009 New Revision: 198150 URL: http://svn.freebsd.org/changeset/base/198150 Log: MFC r197298: Change the default transport protocol for use by the Mount protocol and the NFS Null RPC done by mount_nfs from UDP to TCP, so that it is consistent with the kernel, which already uses NFS over TCP by default. Without this change, doing an NFS mount against a server that only supports UDP results in an unusable mount point if a transport protocol option wasn't specified for the mount. Approved by: re (kib) Modified: stable/8/sbin/mount_nfs/ (props changed) stable/8/sbin/mount_nfs/mount_nfs.c Modified: stable/8/sbin/mount_nfs/mount_nfs.c == --- stable/8/sbin/mount_nfs/mount_nfs.c Thu Oct 15 18:51:19 2009 (r198149) +++ stable/8/sbin/mount_nfs/mount_nfs.c Thu Oct 15 19:50:00 2009 (r198150) @@ -104,7 +104,7 @@ struct nfhret { #defineOF_NOINET6 8 int retrycnt = -1; int opflags = 0; -int nfsproto = IPPROTO_UDP; +int nfsproto = IPPROTO_TCP; int mnttcp_ok = 1; int noconn = 0; char *portspec = NULL; /* Server nfs port; NULL means look up via rpcbind. */ ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r198151 - in head/sys/dev: pci usb/controller
Author: thompsa Date: Thu Oct 15 20:07:08 2009 New Revision: 198151 URL: http://svn.freebsd.org/changeset/base/198151 Log: Workaround buggy BIOS code in USB regard. By doing the BIOS to OS handover for all host controllers at the same time, we avoid problems where the BIOS will actually write to the USB registers of all the USB host controllers every time we handover one of them, and consequently reset the OS programmed values. Submitted by: avg Reviewed by: jhb Added: head/sys/dev/usb/controller/ehcireg.h (contents, props changed) head/sys/dev/usb/controller/ohcireg.h (contents, props changed) head/sys/dev/usb/controller/uhcireg.h (contents, props changed) Modified: head/sys/dev/pci/pci.c head/sys/dev/usb/controller/ehci.c head/sys/dev/usb/controller/ehci.h head/sys/dev/usb/controller/ehci_ixp4xx.c head/sys/dev/usb/controller/ehci_mbus.c head/sys/dev/usb/controller/ehci_pci.c head/sys/dev/usb/controller/ohci.c head/sys/dev/usb/controller/ohci.h head/sys/dev/usb/controller/ohci_atmelarm.c head/sys/dev/usb/controller/ohci_pci.c head/sys/dev/usb/controller/uhci.c head/sys/dev/usb/controller/uhci.h head/sys/dev/usb/controller/uhci_pci.c Modified: head/sys/dev/pci/pci.c == --- head/sys/dev/pci/pci.c Thu Oct 15 19:50:00 2009(r198150) +++ head/sys/dev/pci/pci.c Thu Oct 15 20:07:08 2009(r198151) @@ -62,6 +62,10 @@ __FBSDID($FreeBSD$); #include dev/pci/pcivar.h #include dev/pci/pci_private.h +#include dev/usb/controller/ehcireg.h +#include dev/usb/controller/ohcireg.h +#include dev/usb/controller/uhcireg.h + #include pcib_if.h #include pci_if.h @@ -270,6 +274,13 @@ TUNABLE_INT(hw.pci.honor_msi_blacklist SYSCTL_INT(_hw_pci, OID_AUTO, honor_msi_blacklist, CTLFLAG_RD, pci_honor_msi_blacklist, 1, Honor chipset blacklist for MSI); +static int pci_usb_takeover = 1; +TUNABLE_INT(hw.pci.usb_early_takeover, pci_usb_takeover); +SYSCTL_INT(_hw_pci, OID_AUTO, usb_early_takeover, CTLFLAG_RD | CTLFLAG_TUN, +pci_usb_takeover, 1, Enable early takeover of USB controllers.\n\ +Disable this if you depend on BIOS emulation of USB devices, that is\n\ +you use USB devices (like keyboard or mouse) but do not load USB drivers); + /* Find a device_t by bus/slot/function in domain 0 */ device_t @@ -2569,6 +2580,106 @@ pci_assign_interrupt(device_t bus, devic resource_list_add(dinfo-resources, SYS_RES_IRQ, 0, irq, irq, 1); } +/* Perform early OHCI takeover from SMM. */ +static void +ohci_early_takeover(device_t self) +{ + struct resource *res; + uint32_t ctl; + int rid; + int i; + + rid = PCIR_BAR(0); + res = bus_alloc_resource_any(self, SYS_RES_MEMORY, rid, RF_ACTIVE); + if (res == NULL) + return; + + ctl = bus_read_4(res, OHCI_CONTROL); + if (ctl OHCI_IR) { + if (bootverbose) + printf(ohci early: + SMM active, request owner change\n); + bus_write_4(res, OHCI_COMMAND_STATUS, OHCI_OCR); + for (i = 0; (i 100) (ctl OHCI_IR); i++) { + DELAY(1000); + ctl = bus_read_4(res, OHCI_CONTROL); + } + if (ctl OHCI_IR) { + if (bootverbose) + printf(ohci early: + SMM does not respond, resetting\n); + bus_write_4(res, OHCI_CONTROL, OHCI_HCFS_RESET); + } + } + + bus_release_resource(self, SYS_RES_MEMORY, rid, res); +} + +/* Perform early UHCI takeover from SMM. */ +static void +uhci_early_takeover(device_t self) +{ + /* +* Set the PIRQD enable bit and switch off all the others. We don't +* want legacy support to interfere with us XXX Does this also mean +* that the BIOS won't touch the keyboard anymore if it is connected +* to the ports of the root hub? +*/ + pci_write_config(self, PCI_LEGSUP, PCI_LEGSUP_USBPIRQDEN, 2); +} + +/* Perform early EHCI takeover from SMM. */ +static void +ehci_early_takeover(device_t self) +{ + struct resource *res; + uint32_t cparams; + uint32_t eec; + uint8_t eecp; + uint8_t bios_sem; + int rid; + int i; + + rid = PCIR_BAR(0); + res = bus_alloc_resource_any(self, SYS_RES_MEMORY, rid, RF_ACTIVE); + if (res == NULL) + return; + + cparams = bus_read_4(res, EHCI_HCCPARAMS); + + /* Synchronise with the BIOS if it owns the controller. */ + for (eecp = EHCI_HCC_EECP(cparams); eecp != 0; + eecp = EHCI_EECP_NEXT(eec)) { + eec = pci_read_config(self, eecp, 4); + if (EHCI_EECP_ID(eec) != EHCI_EC_LEGSUP) { + continue; + } + bios_sem = pci_read_config(self,
svn commit: r198152 - head/sys/dev/usb/input
Author: thompsa Date: Thu Oct 15 20:09:27 2009 New Revision: 198152 URL: http://svn.freebsd.org/changeset/base/198152 Log: Only poll ukbd if KDB is active. Submitted by: HPS Modified: head/sys/dev/usb/input/ukbd.c Modified: head/sys/dev/usb/input/ukbd.c == --- head/sys/dev/usb/input/ukbd.c Thu Oct 15 20:07:08 2009 (r198151) +++ head/sys/dev/usb/input/ukbd.c Thu Oct 15 20:09:27 2009 (r198152) @@ -67,6 +67,7 @@ __FBSDID($FreeBSD$); #include sys/callout.h #include sys/malloc.h #include sys/priv.h +#include sys/kdb.h #include dev/usb/usb.h #include dev/usb/usbdi.h @@ -328,6 +329,9 @@ ukbd_do_poll(struct ukbd_softc *sc, uint { DPRINTFN(2, polling\n); + if (kdb_active == 0) + return; /* Only poll if KDB is active */ + while (sc-sc_inputs == 0) { usbd_transfer_poll(sc-sc_xfer, UKBD_N_TRANSFER); ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r198153 - head/sys/dev/usb/net
Author: thompsa Date: Thu Oct 15 20:15:29 2009 New Revision: 198153 URL: http://svn.freebsd.org/changeset/base/198153 Log: Correct offset calcluation for the NCM implementation. Submitted by: HPS Modified: head/sys/dev/usb/net/if_cdce.c Modified: head/sys/dev/usb/net/if_cdce.c == --- head/sys/dev/usb/net/if_cdce.c Thu Oct 15 20:09:27 2009 (r198152) +++ head/sys/dev/usb/net/if_cdce.c Thu Oct 15 20:15:29 2009 (r198153) @@ -1088,7 +1088,7 @@ cdce_ncm_fill_tx_frames(struct usb_xfer sc-sc_ncm.hdr.dwSignature[2] = 'M'; sc-sc_ncm.hdr.dwSignature[3] = 'H'; USETW(sc-sc_ncm.hdr.wHeaderLength, sizeof(sc-sc_ncm.hdr)); - USETW(sc-sc_ncm.hdr.wBlockLength, offset); + USETW(sc-sc_ncm.hdr.wBlockLength, last_offset); USETW(sc-sc_ncm.hdr.wSequence, sc-sc_ncm.tx_seq); USETW(sc-sc_ncm.hdr.wDptIndex, sizeof(sc-sc_ncm.hdr)); @@ -1243,25 +1243,24 @@ cdce_ncm_bulk_read_callback(struct usb_x offset = UGETW(sc-sc_ncm.dp[x].wFrameIndex); temp = UGETW(sc-sc_ncm.dp[x].wFrameLength); - if ((offset + temp) actlen) { - DPRINTFN(1, invalid frame detected (ignored)\n); - m = NULL; - } else if (temp = sizeof(struct ether_header)) { - /* -* allocate a suitable memory buffer, if -* possible -*/ - if (temp (MCLBYTES - ETHER_ALIGN)) { - m = NULL; - continue; - } if (temp (MHLEN - ETHER_ALIGN)) { - m = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR); - } else { - m = m_gethdr(M_DONTWAIT, MT_DATA); - } + if ((offset == 0) || + (temp sizeof(struct ether_header)) || + (temp (MCLBYTES - ETHER_ALIGN))) { + DPRINTFN(1, NULL frame detected at %d\n, x); + m = NULL; + /* silently ignore this frame */ + continue; + } else if ((offset + temp) actlen) { + DPRINTFN(1, invalid frame + detected at %d\n, x); + m = NULL; + /* silently ignore this frame */ + continue; + } else if (temp (MHLEN - ETHER_ALIGN)) { + m = m_getcl(M_DONTWAIT, MT_DATA, M_PKTHDR); } else { - m = NULL; /* dump it */ + m = m_gethdr(M_DONTWAIT, MT_DATA); } DPRINTFN(16, frame %u, offset = %u, length = %u \n, ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r198162 - head/etc
Author: dougb Date: Thu Oct 15 23:20:23 2009 New Revision: 198162 URL: http://svn.freebsd.org/changeset/base/198162 Log: Allow $name_program to override $command in a more robust way that will not cause the value to be null if $command is not set. Modified: head/etc/rc.subr Modified: head/etc/rc.subr == --- head/etc/rc.subrThu Oct 15 21:20:12 2009(r198161) +++ head/etc/rc.subrThu Oct 15 23:20:23 2009(r198162) @@ -616,7 +616,7 @@ run_rc_command() esac eval _override_command=\$${name}_program - command=${command:+${_override_command:-$command}} + command=${_override_command:-$command} _keywords=start stop restart rcvar $extra_commands rc_pid= ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
svn commit: r198164 - in stable/8/etc: . rc.d
Author: dougb Date: Fri Oct 16 00:17:09 2009 New Revision: 198164 URL: http://svn.freebsd.org/changeset/base/198164 Log: MFC r197947: In regards to the Starting foo: type messages at boot time, create and employ a more generic solution, and use it in the individual rc.d scripts that also have an $rc_quiet test: 1. Add check_startmsgs() to rc.subr. 2. In the rc.d scripts that use rc_quiet (and rc.subr) substitute variations of [ -z $rc_quiet ] with check_startmsgs 3. In savecore add a trailing '.' to the end of the message to make it more consistent with other scripts. 4. In newsyslog remove a : before the terminal '.' since we do not expect there to be anything printed out in between to make it more consistent. 5. In the following scripts change quotes to 'quotes' where no variables exist in the message: savecore pf newsyslog 6. [Does not apply in RELENG_8] 7. In the following scripts separate the Starting foo: from the terminal '.' to make them more consistent: moused hostname pf 8. In nfsclient move the message to its own line to avoid a style bug 9. In pf rc_quiet does not apply to the _stop method, so remove the test there. 10. In motd add 'quotes' around the terminal '.' for consistency Approved by: re (kib) Modified: stable/8/etc/ (props changed) stable/8/etc/rc.d/bgfsck stable/8/etc/rc.d/cleartmp stable/8/etc/rc.d/fsck stable/8/etc/rc.d/hostid stable/8/etc/rc.d/hostname stable/8/etc/rc.d/ldconfig stable/8/etc/rc.d/motd stable/8/etc/rc.d/mountcritlocal stable/8/etc/rc.d/moused stable/8/etc/rc.d/netif stable/8/etc/rc.d/newsyslog stable/8/etc/rc.d/nfsclient stable/8/etc/rc.d/pf stable/8/etc/rc.d/savecore stable/8/etc/rc.subr Modified: stable/8/etc/rc.d/bgfsck == --- stable/8/etc/rc.d/bgfsckThu Oct 15 23:30:56 2009(r198163) +++ stable/8/etc/rc.d/bgfsckFri Oct 16 00:17:09 2009(r198164) @@ -31,7 +31,7 @@ bgfsck_start () bgfsck_msg=${bgfsck_msg} in ${background_fsck_delay} seconds fi if [ -z ${rc_force} ]; then - [ -z ${rc_quiet} ] echo ${bgfsck_msg}. + check_startmsgs echo ${bgfsck_msg}. fi (sleep ${background_fsck_delay}; nice -4 fsck -B -p) 21 | \ Modified: stable/8/etc/rc.d/cleartmp == --- stable/8/etc/rc.d/cleartmp Thu Oct 15 23:30:56 2009(r198163) +++ stable/8/etc/rc.d/cleartmp Fri Oct 16 00:17:09 2009(r198164) @@ -25,7 +25,7 @@ cleartmp_start() ${tmp}/.ICE-unix ${tmp}/.font-unix if checkyesno ${rcvar1}; then - [ -z ${rc_quiet} ] echo Clearing ${tmp}. + check_startmsgs echo Clearing ${tmp}. # This is not needed for mfs, but doesn't hurt anything. # Things to note: @@ -44,7 +44,7 @@ cleartmp_start() elif checkyesno clear_tmp_X; then # Remove X lock files, since they will prevent you from # restarting X. Remove other X related directories. - [ -z ${rc_quiet} ] echo Clearing ${tmp} (X related). + check_startmsgs echo Clearing ${tmp} (X related). rm -rf ${tmp}/.X[0-9]-lock ${x11_socket_dirs} fi if checkyesno clear_tmp_X; then Modified: stable/8/etc/rc.d/fsck == --- stable/8/etc/rc.d/fsck Thu Oct 15 23:30:56 2009(r198163) +++ stable/8/etc/rc.d/fsck Fri Oct 16 00:17:09 2009(r198164) @@ -23,7 +23,7 @@ fsck_start() # During fsck ignore SIGQUIT trap : 3 - [ -z ${rc_quiet} ] echo Starting file system checks: + check_startmsgs echo Starting file system checks: if checkyesno background_fsck; then fsck -F -p else Modified: stable/8/etc/rc.d/hostid == --- stable/8/etc/rc.d/hostidThu Oct 15 23:30:56 2009(r198163) +++ stable/8/etc/rc.d/hostidFri Oct 16 00:17:09 2009(r198164) @@ -49,9 +49,9 @@ hostid_set() # Set both kern.hostuuid and kern.hostid. # - [ -z ${rc_quiet} ] echo Setting hostuuid: ${uuid}. + check_startmsgs echo Setting hostuuid: ${uuid}. ${SYSCTL_W} kern.hostuuid=${uuid} /dev/null - [ -z ${rc_quiet} ] echo Setting hostid: ${id}. + check_startmsgs echo Setting hostid: ${id}. ${SYSCTL_W} kern.hostid=${id} /dev/null } Modified: stable/8/etc/rc.d/hostname == --- stable/8/etc/rc.d/hostname Thu Oct 15 23:30:56 2009(r198163) +++ stable/8/etc/rc.d/hostname
Re: svn commit: r198118 - head/usr.bin/netstat
On Thu, 15 Oct 2009, Robert Watson wrote: Log: Print routing statistics as unsigned short rather than unsigned int, otherwise sign extension leads to unlikely values when in the negative range of the signed short structure fields that hold the statistics. The type used to hold routing statistics is arguably also incorrect. This enlarges the bug. With signed types you get advance warning of overflow (you actually get overflow earlier but it usually just results in obviously wrong values being printed), and repeated warnings on overflow (every time the overflowing values wrap back to negative). With unsigned types or this change, you get unobviously wrong values after the first overflow, and no repeated warnings (unless you watch the values carefully enough to see them go backwards). Using unsigned bytes only delays the overflow for a whole factor of 2. Bruce ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org
Re: svn commit: r198151 - in head/sys/dev: pci usb/controller
on 15/10/2009 23:07 Andrew Thompson said the following: Author: thompsa Date: Thu Oct 15 20:07:08 2009 New Revision: 198151 URL: http://svn.freebsd.org/changeset/base/198151 Log: Workaround buggy BIOS code in USB regard. By doing the BIOS to OS handover for all host controllers at the same time, we avoid problems where the BIOS will actually write to the USB registers of all the USB host controllers every time we handover one of them, and consequently reset the OS programmed values. This should fix the boot-time problems with AMD SB600/SB7xx controllers. Many thanks to Hans for a lot of help. -- Andriy Gapon ___ svn-src-all@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to svn-src-all-unsubscr...@freebsd.org