Testing requested for the next version of GNU Mach

2016-02-24 Thread Richard Braun
Hello,

As part of the next GNU Mach release, the physical allocator has been
completely changed in favor of a more standard buddy allocator (finally)
and the kernel allocator can service much more memory for its objects,
making kernel memory exhaustion very unlikely.

Considering we can now manage many more objects, we are once again
working towards merging the virtual memory policy patch [1]. This
attempt is also made possible by the large scalability improvements
Justus Winter contributed to the userspace file system code, in
particular in libports, libpager and libdiskfs.

Since the Debian package applies patches to the kernel, namely the 2g/2g
user/kernel split as well as the Device Driver Environment (DDE)
patches, I have prepared a branch [2] that merges all these together
for testing. I would be grateful if people could test that branch, and
in particular people with real hardware that use DDE drivers.

I'd like to thank Justus again for his durable involvement in the Hurd
project and his final Google Summer of Code participation in which he
also contributed scalability improvements (radix-tree based IPC spaces)
and bug fixes (page queue management) to the kernel.

-- 
Richard Braun

[1] https://lists.gnu.org/archive/html/bug-hurd/2012-07/msg00031.html
[2] 
http://darnassus.sceen.net/gitweb/?p=rbraun/gnumach.git;a=shortlog;h=refs/heads/vm_policy_2g_dde
repository: git://darnassus.sceen.net/rbraun/gnumach.git
branch: vm_policy_2g_dde



Re: [PATCH] hurd: align -p and -pg behavior on Linux

2016-02-24 Thread Samuel Thibault
Thomas Schwinge, on Wed 24 Feb 2016 23:46:36 +0100, wrote:
> I guess getting -D_REENTRANT for -pthread won't do us any harm?

It won't.

> > --- gcc/config/i386/gnu.h.orig  2015-09-17 21:41:13.0 +
> > +++ gcc/config/i386/gnu.h   2015-09-17 23:03:57.0 +
> > @@ -27,11 +27,11 @@
> >  #undef STARTFILE_SPEC
> >  #if defined HAVE_LD_PIE
> >  #define STARTFILE_SPEC \
> > -  "%{!shared: 
> > %{pg|p|profile:gcrt0.o%s;pie:Scrt1.o%s;static:crt0.o%s;:crt1.o%s}} \
> > +  "%{!shared: 
> > %{pg|p:gcrt1.o%s;profile:gcrt0.o%s;pie:Scrt1.o%s;static:crt0.o%s;:crt1.o%s}}
> >  \
> > crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
> >  #else
> >  #define STARTFILE_SPEC \
> > -  "%{!shared: %{pg|p|profile:gcrt0.o%s;static:crt0.o%s;:crt1.o%s}} \
> > +  "%{!shared: 
> > %{pg|p:gcrt1.o%s;profile:gcrt0.o%s;static:crt0.o%s;:crt1.o%s}} \
> > crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
> >  #endif
> 
> I think I understand what you're trying to do (avoid gcrt0.o being used
> for -pg or -p, and instead use gcrt1.o),

Yes.

> Likewise, for -pg or -p, I would assume that we
> still need gcrt0.o for static linking, and gcrt1.o for dynamic linking.

Mmm, probably indeed.

> -  "%{!shared: 
> %{pg|p|profile:gcrt0.o%s;pie:Scrt1.o%s;static:crt0.o%s;:crt1.o%s}} \
> +  "%{!shared: 
> %{pg|p|profile:%{static:gcrt0.o%s;:gcrt1.o%s};pie:Scrt1.o%s;static:crt0.o%s;:crt1.o%s}}
>  \

Yes, that looks reasonable.

Samuel



Re: [PATCH] hurd: align -p and -pg behavior on Linux

2016-02-24 Thread Thomas Schwinge
Hi!

Sorry for the late answer...

On Sat, 19 Sep 2015 14:00:23 +0200, Samuel Thibault  
wrote:
> On Linux, -p and -pg do not make gcc link against libc_p.a, only
> -profile does (as documented in r11246), and thus people expect -p

(Yo, 20 years ago...)

> and -pg to work without libc_p.a installed (it is actually even not
> available any more in Debian).  We should thus rather make the Hurd port
> do the same to avoid build failures.

Conceptually, ACK.


>   * gcc/config/gnu.h (LIB_SPEC) [-p|-pg]: Link with -lc instead of -lc_p.

> --- gcc/config/gnu.h.orig 2015-09-16 00:43:09.785570853 +0200
> +++ gcc/config/gnu.h  2015-09-16 00:43:12.513550418 +0200
> @@ -25,7 +25,7 @@
>  
>  /* Default C library spec.  */
>  #undef LIB_SPEC
> -#define LIB_SPEC "%{pthread:-lpthread} %{pg|p|profile:-lc_p;:-lc}"
> +#define LIB_SPEC "%{pthread:-lpthread} %{profile:-lc_p;:-lc}"

I guess, we can just drop that custom LIB_SPEC altogether, and will then
use the default (which is also used for x86 GNU/Linux):

gcc/config/gnu-user.h:#define GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC \
gcc/config/gnu-user.h-  "%{shared:-lc} \
gcc/config/gnu-user.h-   %{!shared:%{mieee-fp:-lieee} 
%{profile:-lc_p}%{!profile:-lc}}"
gcc/config/gnu-user.h-
gcc/config/gnu-user.h:#define GNU_USER_TARGET_LIB_SPEC \
gcc/config/gnu-user.h-  "%{pthread:-lpthread} " \
gcc/config/gnu-user.h:  GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC
gcc/config/gnu-user.h-
gcc/config/gnu-user.h:#undef  LIB_SPEC
gcc/config/gnu-user.h:#define LIB_SPEC GNU_USER_TARGET_LIB_SPEC

I have not tested the -mieee-fp thingy, but I don't expect any issues
there; looke like this on both x86 GNU/Linux and GNU/Hurd:

$ nm /usr/lib/i386-*gnu/libieee.a
 D _LIB_VERSION


That said, I think we can also drop our custom CPP_SPEC:

gcc/config/gnu.h:#define CPP_SPEC "%{posix:-D_POSIX_SOURCE}"

..., and instead go with the default:

gcc/config/i386/gnu-user-common.h:#define CPP_SPEC 
"%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"

(It doesn't matter for GNU/Hurd which is x86-only, but I don't know why
CPP_SPEC is defined in gcc/config/i386/gnu-user-common.h -- and repeated
in a number of other GNU-user and */linux.h files -- instead of putting
it into the generic gcc/config/gnu-user.h?)

I guess getting -D_REENTRANT for -pthread won't do us any harm?


> * gcc/config/i386/gnu.h (STARTFILE_SPEC) [-p|-pg]: Use gcrt1.o
> instead of gcrt0.o.

> --- gcc/config/i386/gnu.h.orig2015-09-17 21:41:13.0 +
> +++ gcc/config/i386/gnu.h 2015-09-17 23:03:57.0 +
> @@ -27,11 +27,11 @@
>  #undef   STARTFILE_SPEC
>  #if defined HAVE_LD_PIE
>  #define STARTFILE_SPEC \
> -  "%{!shared: 
> %{pg|p|profile:gcrt0.o%s;pie:Scrt1.o%s;static:crt0.o%s;:crt1.o%s}} \
> +  "%{!shared: 
> %{pg|p:gcrt1.o%s;profile:gcrt0.o%s;pie:Scrt1.o%s;static:crt0.o%s;:crt1.o%s}} \
> crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
>  #else
>  #define STARTFILE_SPEC \
> -  "%{!shared: %{pg|p|profile:gcrt0.o%s;static:crt0.o%s;:crt1.o%s}} \
> +  "%{!shared: %{pg|p:gcrt1.o%s;profile:gcrt0.o%s;static:crt0.o%s;:crt1.o%s}} 
> \
> crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
>  #endif

I think I understand what you're trying to do (avoid gcrt0.o being used
for -pg or -p, and instead use gcrt1.o), but I'm not sure this is
completely correct.  Which of the several configurations, that is, flags
and their combinations, did you actually test?

In my understanding, the Hurd needs crt0.o for static linking, and crt1.o
for dynamic linking.  Likewise, for -pg or -p, I would assume that we
still need gcrt0.o for static linking, and gcrt1.o for dynamic linking.
Instead you're now suggesting to always use gcrt1.o for -pg or -p, and
gcrt0.o for -profile.


I'm now testing the following patch:

--- gcc/config/gnu.h
+++ gcc/config/gnu.h
@@ -19,14 +19,6 @@ You should have received a copy of the GNU General Public 
License
 along with GCC.  If not, see .
 */
 
-/* Provide GCC options for standard feature-test macros.  */
-#undef CPP_SPEC
-#define CPP_SPEC "%{posix:-D_POSIX_SOURCE}"
-
-/* Default C library spec.  */
-#undef LIB_SPEC
-#define LIB_SPEC "%{pthread:-lpthread} %{pg|p|profile:-lc_p;:-lc}"
-
 #undef GNU_USER_TARGET_OS_CPP_BUILTINS
 #define GNU_USER_TARGET_OS_CPP_BUILTINS()  \
 do {   \
--- gcc/config/i386/gnu.h
+++ gcc/config/i386/gnu.h
@@ -27,11 +27,11 @@ along with GCC.  If not, see .
 #undef STARTFILE_SPEC
 #if defined HAVE_LD_PIE
 #define STARTFILE_SPEC \
-  "%{!shared: 
%{pg|p|profile:gcrt0.o%s;pie:Scrt1.o%s;static:crt0.o%s;:crt1.o%s}} \
+  "%{!shared: 
%{pg|p|profile:%{static:gcrt0.o%s;:gcrt1.o%s};pie:Scrt1.o%s;static:crt0.o%s;:crt1.o%s}}
 \
crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s}"
 #else
 #define STARTFILE_SPEC \
-  "%{!shared: %{p

Re: [IMPORTANT] Ideas for Summer of Code 2016

2016-02-24 Thread Giuseppe Scrivano
Thomas Schwinge  writes:

> Please copy the section for GNU Hurd:
> .

Done.

Thanks,
Giuseppe



Re: [IMPORTANT] Ideas for Summer of Code 2016

2016-02-24 Thread Thomas Schwinge
Hi!

On Wed, 10 Feb 2016 15:59:08 +0100, Giuseppe Scrivano  wrote:
> Hi everyone!
> 
> Google is accepting applications for the next Summer of Code and as
> usual we are going to apply for it.

Thanks for taking care of this, again!


> We should start thinking about a list of ideas for the next Summer of
> Code and potential mentors.
> 
> This is the list of ideas we had last year:
> 
>   http://www.gnu.org/software/soc-projects/ideas-2015.html
> 
> Is there anything left undone that can be reused this year?

Please copy the section for GNU Hurd:
.


Grüße
 Thomas


signature.asc
Description: PGP signature


Re: [gscriv...@gnu.org: [IMPORTANT] Ideas for Summer of Code 2016]

2016-02-24 Thread Thomas Schwinge
Hi!

On Sun, 14 Feb 2016 11:40:30 +0100, Justus Winter 
<4win...@informatik.uni-hamburg.de> wrote:
> Quoting Samuel Thibault (2016-02-10 19:10:58)
> > Any ideas/mentors for the summer of code?
> 
> I'd be happy to mentor someone.

Great; thanks!

> I went over the list of our project ideas, and the ones I'd like to
> see tackled the most are: [...]

:-) Taking you at your word:

commit 4f6e25bae59835cb402597fc82a8029f6d56a3c9
Author: Thomas Schwinge 
Date:   Wed Feb 24 20:40:40 2016 +0100

GSoC preparations

id:"20160214104030.10353.84...@thinkbox.jade-hamburg.de"
---
 community/gsoc/project_ideas.mdwn  | 16 
 community/gsoc/project_ideas/driver_glue_code.mdwn | 12 ++--
 community/gsoc/project_ideas/package_manager.mdwn  |  6 +++---
 community/gsoc/project_ideas/secure_chroot.mdwn| 16 ++--
 community/gsoc/project_ideas/virtualization.mdwn   | 12 ++--
 community/gsoc/project_ideas/xattr.mdwn|  4 ++--
 6 files changed, 47 insertions(+), 19 deletions(-)

diff --git community/gsoc/project_ideas.mdwn community/gsoc/project_ideas.mdwn
index 643a424..7338d57 100644
--- community/gsoc/project_ideas.mdwn
+++ community/gsoc/project_ideas.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015
-Free Software Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015,
+2016 Free Software Foundation, Inc."]]
 
 [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
 id="license" text="Permission is granted to copy, distribute and/or modify this
@@ -97,9 +97,13 @@ All project ideas inlined:
 
 project_ideas:
 
-  "community/gsoc/project_ideas/physical_memory_management
+  "community/gsoc/project_ideas/virtualization
+  community/gsoc/project_ideas/secure_chroot
+  community/gsoc/project_ideas/package_manager
+  community/gsoc/project_ideas/xattr
+  community/gsoc/project_ideas/driver_glue_code
+  community/gsoc/project_ideas/physical_memory_management
   community/gsoc/project_ideas/language_bindings
-  community/gsoc/project_ideas/virtualization
   community/gsoc/project_ideas/file_locking
   community/gsoc/project_ideas/gdb
   community/gsoc/project_ideas/tcp_ip_stack
@@ -110,8 +114,6 @@ project_ideas:
   community/gsoc/project_ideas/xmlfs
   community/gsoc/project_ideas/unionfs_boot
   community/gsoc/project_ideas/lexical_dot-dot
-  community/gsoc/project_ideas/secure_chroot
-  community/gsoc/project_ideas/package_manager
   community/gsoc/project_ideas/download_backends
   community/gsoc/project_ideas/maxpath
   community/gsoc/project_ideas/gnat
@@ -122,9 +124,7 @@ project_ideas:
   community/gsoc/project_ideas/testsuites
   community/gsoc/project_ideas/testing_framework
   community/gsoc/project_ideas/libcap
-  community/gsoc/project_ideas/xattr
   community/gsoc/project_ideas/valgrind
-  community/gsoc/project_ideas/driver_glue_code
   community/gsoc/project_ideas/dtrace
   community/gsoc/project_ideas/libdiskfs_locking"
 
diff --git community/gsoc/project_ideas/driver_glue_code.mdwn 
community/gsoc/project_ideas/driver_glue_code.mdwn
index 8581c7c..0f92159 100644
--- community/gsoc/project_ideas/driver_glue_code.mdwn
+++ community/gsoc/project_ideas/driver_glue_code.mdwn
@@ -1,4 +1,5 @@
-[[!meta copyright="Copyright © 2008, 2009, 2010, 2011 Free Software 
Foundation, Inc."]]
+[[!meta copyright="Copyright © 2008, 2009, 2010, 2011, 2016 Free Software
+Foundation, Inc."]]
 
 [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
 id="license" text="Permission is granted to copy, distribute and/or modify this
@@ -66,8 +67,15 @@ To be able to work on the framework,
 the student will also have to get a good understanding of certain aspects of 
Hurd,
 such as memory management for example.
 
-Possible mentors: Zheng Da, Samuel Thibault (youpi)
+Possible mentors: Justus Winter (teythoon), Samuel Thibault (youpi)
 
 Exercise: Get one of the not yet integrated Linux network card drivers to work.
 (Note: This should be straightforward,
 once you have the framework properly built and set up...)
+
+---
+
+
+# 2016-02-14, Justus Winter
+
+`s/dde/rump/g` of course.
diff --git community/gsoc/project_ideas/package_manager.mdwn 
community/gsoc/project_ideas/package_manager.mdwn
index 721f6d0..63a1d7c 100644
--- community/gsoc/project_ideas/package_manager.mdwn
+++ community/gsoc/project_ideas/package_manager.mdwn
@@ -1,5 +1,5 @@
-[[!meta copyright="Copyright © 2008, 2009, 2013, 2014 Free Software Foundation,
-Inc."]]
+[[!meta copyright="Copyright © 2008, 2009, 2013, 2014, 2016 Free Software
+Foundation, Inc."]]
 
 [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
 id="license" text="Permission is granted to copy, distribute and/or modify this
@@ -53,7 +53,7 @@ Guix|hurd/running/nix#guix]].
 See also: [Porting Guix to
 GNU/Hurd](http://www.gnu.org/software/soc-projects/ideas-2014.html#guix_hurd).
 
-Po