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.
