commit-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gnumach] 01/01: Imported Upstream version 1.4+git20150102


From: Samuel Thibault
Subject: [gnumach] 01/01: Imported Upstream version 1.4+git20150102
Date: Fri, 02 Jan 2015 19:50:47 +0000

This is an automated email from the git hooks/post-receive script.

sthibault pushed a commit to annotated tag upstream/1.4+git20150102
in repository gnumach.

commit 498080ae3c1778b93f1099226239659de76c7786
Author: Samuel Thibault <address@hidden>
Date:   Fri Jan 2 18:43:51 2015 +0000

    Imported Upstream version 1.4+git20150102
---
 ChangeLog        | 33 +++++++++++++++++++++++++++++++++
 configure        | 20 ++++++++++----------
 doc/mach.info    |  2 +-
 doc/mach.info-1  |  4 ++--
 doc/mach.info-2  |  2 +-
 doc/stamp-vti    |  4 ++--
 doc/version.texi |  4 ++--
 i386/i386/trap.c |  6 +++---
 ipc/ipc_kmsg.c   |  4 +---
 ipc/ipc_kmsg.h   | 24 +++++++++++++++++++-----
 kern/pc_sample.c |  3 +++
 version.m4       |  2 +-
 12 files changed, 78 insertions(+), 30 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 3ec1c36..0da99b7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,36 @@
+2015-01-02  Samuel Thibault  <address@hidden>
+
+       Handle kernel traps happening before starting userland
+       * i386/i386/trap.c (kernel_trap): When current_thread is null, assume 
that
+       we are in kernel land.
+
+2014-12-16  Justus Winter  <address@hidden>
+
+       kern: gracefully handle bogus sample pc sequence number
+       If a sequence number larger than the sample control sequence number is
+       supplied, `nsamples' becomes negative.  Handle this gracefully.
+
+       * kern/pc_sample.c (get_sampled_pcs): Handle bogus sequence number.
+
+2014-12-16  Justus Winter  <address@hidden>
+
+       ipc: guard test code with `MACH_IPC_TEST'
+       * ipc/ipc_kmsg.h (ikm_mark_bogus): New macro.
+       (ipc_kmsg_rmqueue_first_macro): Use `ikm_mark_bogus'.
+       * ipc/ipc_kmsg.c (ipc_kmsg_rmqueue): Likewise.
+
+2014-12-16  Justus Winter  <address@hidden>
+
+       ipc: tune size of cached kernel message buffers
+       The previous limit was 256 bytes.  That seems a little crummy by
+       todays standards, and we are frequently sending bigger packets
+       (e.g. every RPC containing a string_t on Hurd).
+
+       Use the page size for IKM_SAVED_KMSG_SIZE to make sure the page is
+       pinned to a single processor.
+
+       * ipc/ipc_kmsg.h (IKM_SAVED_KMSG_SIZE): Define to `PAGE_SIZE'.
+
 2014-12-15  Samuel Thibault  <address@hidden>
 
        Make spl7 just clear IF instead of setting the PIC mask
diff --git a/configure b/configure
index de0aec6..f38cd80 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for GNU Mach 1.4+git20141214.
+# Generated by GNU Autoconf 2.69 for GNU Mach 1.4+git20150102.
 #
 # Report bugs to <address@hidden>.
 #
@@ -579,8 +579,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='GNU Mach'
 PACKAGE_TARNAME='gnumach'
-PACKAGE_VERSION='1.4+git20141214'
-PACKAGE_STRING='GNU Mach 1.4+git20141214'
+PACKAGE_VERSION='1.4+git20150102'
+PACKAGE_STRING='GNU Mach 1.4+git20150102'
 PACKAGE_BUGREPORT='address@hidden'
 PACKAGE_URL=''
 
@@ -1584,7 +1584,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures GNU Mach 1.4+git20141214 to adapt to many kinds of 
systems.
+\`configure' configures GNU Mach 1.4+git20150102 to adapt to many kinds of 
systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1654,7 +1654,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of GNU Mach 1.4+git20141214:";;
+     short | recursive ) echo "Configuration of GNU Mach 1.4+git20150102:";;
    esac
   cat <<\_ACEOF
 
@@ -2002,7 +2002,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-GNU Mach configure 1.4+git20141214
+GNU Mach configure 1.4+git20150102
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2094,7 +2094,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by GNU Mach $as_me 1.4+git20141214, which was
+It was created by GNU Mach $as_me 1.4+git20150102, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2960,7 +2960,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='gnumach'
- VERSION='1.4+git20141214'
+ VERSION='1.4+git20150102'
 
 
 # Some tools Automake needs.
@@ -12110,7 +12110,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by GNU Mach $as_me 1.4+git20141214, which was
+This file was extended by GNU Mach $as_me 1.4+git20150102, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -12181,7 +12181,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-GNU Mach config.status 1.4+git20141214
+GNU Mach config.status 1.4+git20150102
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/doc/mach.info b/doc/mach.info
index fe27860..e98437c 100644
--- a/doc/mach.info
+++ b/doc/mach.info
@@ -3,7 +3,7 @@ This is mach.info, produced by makeinfo version 5.2 from 
mach.texi.
 This file documents the GNU Mach microkernel.
 
    This is edition 0.4, last updated on 10 November 2014, of 'The GNU
-Mach Reference Manual', for version 1.4+git20141214.
+Mach Reference Manual', for version 1.4+git20150102.
 
    Copyright (C) 2001, 2002, 2006, 2007, 2008 Free Software Foundation,
 Inc.
diff --git a/doc/mach.info-1 b/doc/mach.info-1
index eafe7bb..ad7d2bb 100644
--- a/doc/mach.info-1
+++ b/doc/mach.info-1
@@ -3,7 +3,7 @@ This is mach.info, produced by makeinfo version 5.2 from 
mach.texi.
 This file documents the GNU Mach microkernel.
 
    This is edition 0.4, last updated on 10 November 2014, of 'The GNU
-Mach Reference Manual', for version 1.4+git20141214.
+Mach Reference Manual', for version 1.4+git20150102.
 
    Copyright (C) 2001, 2002, 2006, 2007, 2008 Free Software Foundation,
 Inc.
@@ -46,7 +46,7 @@ Main Menu
 This file documents the GNU Mach microkernel.
 
    This is edition 0.4, last updated on 10 November 2014, of 'The GNU
-Mach Reference Manual', for version 1.4+git20141214.
+Mach Reference Manual', for version 1.4+git20150102.
 
    Copyright (C) 2001, 2002, 2006, 2007, 2008 Free Software Foundation,
 Inc.
diff --git a/doc/mach.info-2 b/doc/mach.info-2
index 5d6e0f4..2a9532a 100644
--- a/doc/mach.info-2
+++ b/doc/mach.info-2
@@ -3,7 +3,7 @@ This is mach.info, produced by makeinfo version 5.2 from 
mach.texi.
 This file documents the GNU Mach microkernel.
 
    This is edition 0.4, last updated on 10 November 2014, of 'The GNU
-Mach Reference Manual', for version 1.4+git20141214.
+Mach Reference Manual', for version 1.4+git20150102.
 
    Copyright (C) 2001, 2002, 2006, 2007, 2008 Free Software Foundation,
 Inc.
diff --git a/doc/stamp-vti b/doc/stamp-vti
index 4384f20..1c40ccd 100644
--- a/doc/stamp-vti
+++ b/doc/stamp-vti
@@ -1,4 +1,4 @@
 @set UPDATED 10 November 2014
 @set UPDATED-MONTH November 2014
address@hidden EDITION 1.4+git20141214
address@hidden VERSION 1.4+git20141214
address@hidden EDITION 1.4+git20150102
address@hidden VERSION 1.4+git20150102
diff --git a/doc/version.texi b/doc/version.texi
index 4384f20..1c40ccd 100644
--- a/doc/version.texi
+++ b/doc/version.texi
@@ -1,4 +1,4 @@
 @set UPDATED 10 November 2014
 @set UPDATED-MONTH November 2014
address@hidden EDITION 1.4+git20141214
address@hidden VERSION 1.4+git20141214
address@hidden EDITION 1.4+git20150102
address@hidden VERSION 1.4+git20150102
diff --git a/i386/i386/trap.c b/i386/i386/trap.c
index 9d4d43d..f1fe634 100644
--- a/i386/i386/trap.c
+++ b/i386/i386/trap.c
@@ -217,9 +217,9 @@ dump_ss(regs);
                                goto badtrap;
                        }
                } else {
-                       assert(thread);
-                       map = thread->task->map;
-                       if (map == kernel_map) {
+                       if (thread)
+                               map = thread->task->map;
+                       if (!thread || map == kernel_map) {
                                printf("kernel page fault at %08x:\n", subcode);
                                dump_ss(regs);
                                panic("kernel thread accessed user space!\n");
diff --git a/ipc/ipc_kmsg.c b/ipc/ipc_kmsg.c
index 71a0d74..66643fd 100644
--- a/ipc/ipc_kmsg.c
+++ b/ipc/ipc_kmsg.c
@@ -139,9 +139,7 @@ ipc_kmsg_rmqueue(
                next->ikm_prev = prev;
                prev->ikm_next = next;
        }
-       /* XXX Temporary debug logic */
-       kmsg->ikm_next = IKM_BOGUS;
-       kmsg->ikm_prev = IKM_BOGUS;
+       ikm_mark_bogus (kmsg);
 }
 
 /*
diff --git a/ipc/ipc_kmsg.h b/ipc/ipc_kmsg.h
index 07695fb..620785b 100644
--- a/ipc/ipc_kmsg.h
+++ b/ipc/ipc_kmsg.h
@@ -72,11 +72,24 @@ typedef struct ipc_kmsg {
 #define        ikm_plus_overhead(size) ((vm_size_t)((size) + IKM_OVERHEAD))
 #define        ikm_less_overhead(size) ((mach_msg_size_t)((size) - 
IKM_OVERHEAD))
 
+#if    MACH_IPC_TEST
 /*
- * XXX For debugging.
+ *     For debugging.
  */
 #define IKM_BOGUS              ((ipc_kmsg_t) 0xffffff10)
 
+#define        ikm_mark_bogus(kmsg)                                            
\
+MACRO_BEGIN                                                            \
+       (kmsg)->ikm_next = IKM_BOGUS;                                   \
+       (kmsg)->ikm_prev = IKM_BOGUS;                                   \
+MACRO_END
+
+#else  /* MACH_IPC_TEST */
+
+#define        ikm_mark_bogus(kmsg)    ;
+
+#endif /* MACH_IPC_TEST */
+
 /*
  *     We keep a per-processor cache of kernel message buffers.
  *     The cache saves the overhead/locking of using kalloc/kfree.
@@ -92,9 +105,12 @@ extern ipc_kmsg_t   ipc_kmsg_cache[NCPUS];
 /*
  *     The size of the kernel message buffers that will be cached.
  *     IKM_SAVED_KMSG_SIZE includes overhead; IKM_SAVED_MSG_SIZE doesn't.
+ *
+ *     We use the page size for IKM_SAVED_KMSG_SIZE to make sure the
+ *     page is pinned to a single processor.
  */
 
-#define        IKM_SAVED_KMSG_SIZE     ((vm_size_t) 256)
+#define        IKM_SAVED_KMSG_SIZE     PAGE_SIZE
 #define        IKM_SAVED_MSG_SIZE      ikm_less_overhead(IKM_SAVED_KMSG_SIZE)
 
 #define        ikm_alloc(size)                                                 
\
@@ -195,9 +211,7 @@ MACRO_BEGIN                                                 
        \
                _next->ikm_prev = _prev;                                \
                _prev->ikm_next = _next;                                \
        }                                                               \
-       /* XXX Debug paranoia */                                        \
-       kmsg->ikm_next = IKM_BOGUS;                                     \
-       kmsg->ikm_prev = IKM_BOGUS;                                     \
+       ikm_mark_bogus (kmsg);                                          \
 MACRO_END
 
 #define        ipc_kmsg_enqueue_macro(queue, kmsg)                             
\
diff --git a/kern/pc_sample.c b/kern/pc_sample.c
index 81b2056..fcb9d71 100644
--- a/kern/pc_sample.c
+++ b/kern/pc_sample.c
@@ -189,6 +189,9 @@ get_sampled_pcs(
                   (sampled_pc_array_t)cp->buffer,
                   (seqidx2 + 1) * sizeof(sampled_pc_t));
        }
+    } else if (nsamples < 0) {
+       /* Bogus SEQNO supplied.  */
+       nsamples = 0;
     } else {
        /*  could either be zero because of overflow, or because
         *  we are being lied to.  In either case, return nothing.
diff --git a/version.m4 b/version.m4
index 3cab496..fb3dcf1 100644
--- a/version.m4
+++ b/version.m4
@@ -1,4 +1,4 @@
 m4_define([AC_PACKAGE_NAME],[GNU Mach])
-m4_define([AC_PACKAGE_VERSION],[1.4+git20141214])
+m4_define([AC_PACKAGE_VERSION],[1.4+git20150102])
 m4_define([AC_PACKAGE_BUGREPORT],address@hidden)
 m4_define([AC_PACKAGE_TARNAME],[gnumach])

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-hurd/gnumach.git



reply via email to

[Prev in Thread] Current Thread [Next in Thread]