Merged to master at 766c3a49b90c..d09867fc9524 (from, to]

You can see the entire diff with 'git diff' or at
https://github.com/brho/akaros/compare/766c3a49b90c...d09867fc9524

(rebuild glibc)

On 2016-03-31 at 17:02 Barret Rhoden <[email protected]> wrote:
> Hi -
> 
> The old style of O_NONBLOCKing was to set the #ip conversation to be
> non-blocking.  This tracked the nonblock on the conversation
> (analogous to a server's file).  Now we track it on the chan
> (analagous to an OS's struct file*).  This allows us to use fcntl
> easily to toggle nonblock on a per-chan/file basis.  It also allows
> us to easily add support for nonblocking pipes.
> 
> Here are the highlights:
> - Various bugfixes, including misaligned vcore stacks
> - Removal of one of our oldest syscalls: SYS_cputs
> - Renaming all KMALLOC_WAIT -> MEM_WAIT, and the incremental usage of
>   MEM_ATOMIC instead of '0' for memory allocation flags.
> - Rewrite of qio read/write functions using common backend helpers
> - O_NONBLOCK support on chans for pipes and sockets
> 
> With these changes and the latest from dropbear-akaros/akaros, we can
> do most everything we want.  There's still a bug with scp prepending
> an extra byte to file transfers.
> 
> Barret
> 
> 
> 
> The following changes since commit
> 766c3a49b90c98a52bf0ac74814365d077b5f9f2:
> 
>   Bump the size of the ancillary state (XCC) (2016-03-31 16:52:25
> -0400)
> 
> are available in the git repository at:
> 
>   [email protected]:brho/akaros.git net
> 
> for you to fetch changes up to
> b20137eb6979c3ceceba3ed857f3832f0aa1daab:
> 
>   qio: Remove the old qnonblock() (2016-03-31 16:53:42 -0400)
> 
> ----------------------------------------------------------------
> View this online at:
> https://github.com/brho/akaros/compare/766c3a49b90c...b20137eb6979
> 
> ----------------------------------------------------------------
> Barret Rhoden (36):
>       Remove the double-close() warning
>       Fix minor leaks in mm.c
>       Map PTEs for MAP_SHARED | MAP_LOCKED files on fork
>       Use the POSIX isatty() (XCC)
>       Use write() in parlib/debug.c
>       Remove SYS_cputs (XCC)
>       Remove SYS_cgetc (XCC)
>       Send SIGCHLD to the parent when a process exits
>       Properly align vcore stacks on x86
>       Make akaros_vfprintf() take a stream (XCC)
>       Intercept vfprintf() instead of printf() (XCC)
>       Fix chan ref leak in fd_setfl()
>       Add a chan_ctl devop; support fcntl on chans
>       Remove the O_NONBLOCK fcntl() intercept (XCC)
>       Rework memory allocation flags [1/2]
>       Rename KMALLOC_* -> MEM_* [2/2]
>       Make iallocb just an _allocb(x, 0) [1/2]
>       Make all block allocations use the same func [2/2]
>       qio: Clean up locking
>       qio: remove qproduce()
>       Stop setting a kick for TCP's RQ
>       qio: Consolidate producer functions
>       Stop calling qremove() outside qio.c
>       Remove qnonblock from the profiler
>       qio: Remove qconsume()
>       Pass the buf to block_append_extra()
>       Move SIZE_MAX into common.h
>       Make freeb() and freeblist() return the old size
>       qio: Consolidate readers into __qbread()
>       qio: Provide helpers for O_NONBLOCK operations
>       net: Add a helper chan2conv()
>       net: Use chan flag O_NONBLOCK for nonblocking
>       net: Fixup iplib based on the O_NONBLOCK rules
>       net: Fixup socket shims use of O_NONBLOCK (XCC)
>       Add O_NONBLOCK support to pipes
>       qio: Remove the old qnonblock()
> 
>  kern/arch/x86/devarch.c                            |   14 +-
>  kern/arch/x86/msi.c                                |    2 +-
>  kern/arch/x86/perfmon.c                            |    6 +-
>  kern/arch/x86/pmap64.c                             |    4 +-
>  kern/arch/x86/process64.c                          |   27 +-
>  kern/arch/x86/trap.c                               |    3 +-
>  kern/arch/x86/vmm/intel/vmx.c                      |    7 +-
>  kern/arch/x86/vmm/vmm.c                            |    3 +-
>  kern/drivers/dev/acpi.c                            |    8 +-
>  kern/drivers/dev/alarm.c                           |    2 +-
>  kern/drivers/dev/cons.c                            |    2 +-
>  kern/drivers/dev/ether.c                           |    6 +-
>  kern/drivers/dev/eventfd.c                         |    2 +-
>  kern/drivers/dev/kprof.c                           |    8 +-
>  kern/drivers/dev/mnt.c                             |   13 +-
>  kern/drivers/dev/pipe.c                            |   40 +-
>  kern/drivers/dev/proc.c                            |   20 +-
>  kern/drivers/dev/root.c                            |    4 +-
>  kern/drivers/dev/srv.c                             |    6 +-
>  kern/drivers/dev/vars.c                            |    4 +-
>  kern/drivers/dev/version.c                         |    2 +-
>  kern/drivers/net/bnx2x/bnx2x.h                     |    2 +-
>  kern/drivers/net/bnx2x/bnx2x_cmn.c                 |   30 +-
>  kern/drivers/net/bnx2x/bnx2x_cmn.h                 |    4 +-
>  kern/drivers/net/bnx2x/bnx2x_dev.c                 |    5 +-
>  kern/drivers/net/bnx2x/bnx2x_ethtool.c             |    2 +-
>  kern/drivers/net/bnx2x/bnx2x_main.c                |   14 +-
>  kern/drivers/net/bnx2x/bnx2x_sriov.c               |    8 +-
>  kern/drivers/net/bnx2x/bnx2x_vfpf.c                |    2 +-
>  kern/drivers/net/ether8139.c                       |    6 +-
>  kern/drivers/net/ether8169.c                       |   14 +-
>  kern/drivers/net/ether82563.c                      |   10 +-
>  kern/drivers/net/etherigbe.c                       |    6 +-
>  kern/drivers/net/mlx4/alloc.c                      |   12 +-
>  kern/drivers/net/mlx4/cmd.c                        |   22 +-
>  kern/drivers/net/mlx4/cq.c                         |    4 +-
>  kern/drivers/net/mlx4/en_cq.c                      |    4 +-
>  kern/drivers/net/mlx4/en_ethtool.c                 |   12 +-
>  kern/drivers/net/mlx4/en_main.c                    |    2 +-
>  kern/drivers/net/mlx4/en_netdev.c                  |   14 +-
>  kern/drivers/net/mlx4/en_resources.c               |    2 +-
>  kern/drivers/net/mlx4/en_rx.c                      |   18 +-
>  kern/drivers/net/mlx4/en_tx.c                      |   12 +-
>  kern/drivers/net/mlx4/eq.c                         |   12 +-
>  kern/drivers/net/mlx4/icm.c                        |    6 +-
>  kern/drivers/net/mlx4/intf.c                       |    2 +-
>  kern/drivers/net/mlx4/main.c                       |   24 +-
>  kern/drivers/net/mlx4/mcg.c                        |   10 +-
>  kern/drivers/net/mlx4/mr.c                         |   10 +-
>  kern/drivers/net/mlx4/pd.c                         |    4 +-
>  kern/drivers/net/mlx4/profile.c                    |    2 +-
>  kern/drivers/net/mlx4/qp.c                         |   10 +-
>  kern/drivers/net/mlx4/reset.c                      |    2 +-
>  kern/drivers/net/mlx4/resource_tracker.c           |   40 +-
>  kern/drivers/net/mlx4/srq.c                        |    4 +-
>  kern/drivers/net/udrvr/compat.h                    |    4 +-
>  kern/include/common.h                              |    2 +
>  kern/include/ip.h                                  |    2 -
>  kern/include/kmalloc.h                             |    7 +-
>  kern/include/linux/compat_todo.h                   |    4 +-
>  kern/include/linux_compat.h                        |    4 +-
>  kern/include/ns.h                                  |   41 +-
>  kern/include/ros/bits/syscall.h                    |    4 +-
>  kern/lib/circular_buffer.c                         |    2 +-
>  kern/lib/slice.c                                   |    5 +-
>  kern/lib/zlib_inflate/infutil.c                    |    4 +-
>  kern/src/dmapool.c                                 |    2 +-
>  kern/src/fdtap.c                                   |    2 +-
>  kern/src/kreallocarray.c                           |    1 -
>  kern/src/ktest/pb_ktests.c                         |    4 +-
>  kern/src/mm.c                                      |   59 +-
>  kern/src/net/arp.c                                 |    2 +-
>  kern/src/net/devip.c                               |   95 +-
>  kern/src/net/dial.c                                |   18 +-
>  kern/src/net/ethermedium.c                         |   10 +-
>  kern/src/net/icmp.c                                |    4 +-
>  kern/src/net/icmp6.c                               |    2 +-
>  kern/src/net/ipv6.c                                |    3 +-
>  kern/src/net/tcp.c                                 |   12 +-
>  kern/src/ns/allocb.c                               |   86 +-
>  kern/src/ns/dev.c                                  |    6 +-
>  kern/src/ns/devtab.c                               |    2 +-
>  kern/src/ns/pgrp.c                                 |    2 +-
>  kern/src/ns/qio.c                                  | 1131 ++++------
>  kern/src/ns/sysfile.c                              |   24 +-
>  kern/src/page_alloc.c                              |    4 +-
>  kern/src/process.c                                 |   11 +-
>  kern/src/profiler.c                                |    5 +-
>  kern/src/slab.c                                    |    2 +-
>  kern/src/smallidpool.c                             |    2 +-
>  kern/src/syscall.c                                 |   41 +-
>  kern/src/vfs.c                                     |    6 +-
>  scripts/plan9                                      |    2 +-
>  scripts/spatch/linux/memory.cocci                  |    6 +-
>  scripts/spatch/malloc.cocci                        |   14 +
>  tests/epoll_server.c                               |   24 +-
>  tests/select_server.c                              |   18 +-
>  .../glibc-2.19-akaros/sysdeps/akaros/Makefile      |    1 -
>  .../glibc-2.19-akaros/sysdeps/akaros/Versions      |    2 +-
>  .../glibc-2.19-akaros/sysdeps/akaros/accept.c      |   27 +-
>  .../glibc-2.19-akaros/sysdeps/akaros/fcntl-ext.c   |  101 -
>  .../glibc-2.19-akaros/sysdeps/akaros/fcntl.c       |    3 +
>  .../glibc-2.19-akaros/sysdeps/akaros/isatty.c      |   27 +-
>  .../sysdeps/akaros/parlib-compat.c                 |    4 +-
>  .../sysdeps/akaros/plan9_sockets.c                 |    5 +-
>  .../glibc-2.19-akaros/sysdeps/akaros/printf.c      |   46 -
>  .../glibc-2.19-akaros/sysdeps/akaros/socket.c      |    6 +-
>  .../glibc-2.19-akaros/sysdeps/akaros/vfprintf.c    | 2361
> ++++++++++++++++++++
> user/iplib/announce.c                              |    2 +-
> user/iplib/dial.c                                  |    4 +-
> user/parlib/debug.c                                |   16 +-
> user/parlib/include/parlib/parlib.h                |    2 -
> user/parlib/include/parlib/stdio.h                 |    4 +-
> user/parlib/include/parlib/vcore.h                 |    3 +
> user/parlib/riscv/vcore.c                          |   25 +
> user/parlib/riscv/{vcore.S => vcore_asm.S}         |    0
> user/parlib/syscall.c                              |   10 -
> user/parlib/vcore.c                                |   31 -
> user/parlib/x86/vcore.c                            |   32 +-
> user/parlib/x86/vcore_asm.S                        |   14 + 120 files
> changed, 3477 insertions(+), 1442 deletions(-) delete mode 100644
> tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/fcntl-ext.c
> delete mode 100644
> tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/printf.c
> create mode 100644
> tools/compilers/gcc-glibc/glibc-2.19-akaros/sysdeps/akaros/vfprintf.c
> create mode 100644 user/parlib/riscv/vcore.c rename
> user/parlib/riscv/{vcore.S => vcore_asm.S} (100%) create mode 100644
> user/parlib/x86/vcore_asm.S

-- 
You received this message because you are subscribed to the Google Groups 
"Akaros" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to