21 Nov, 2011

3 commits

  • Patch adds LRW support for serpent-sse2 by using lrw_crypt(). Patch has been
    tested with tcrypt and automated filesystem tests.

    Tcrypt benchmarks results (serpent-sse2/serpent_generic speed ratios):

    Benchmark results with tcrypt:

    Intel Celeron T1600 (x86_64) (fam:6, model:15, step:13):
    size lrw-enc lrw-dec
    16B 1.00x 0.96x
    64B 1.01x 1.01x
    256B 3.01x 2.97x
    1024B 3.39x 3.33x
    8192B 3.35x 3.33x

    AMD Phenom II 1055T (x86_64) (fam:16, model:10):
    size lrw-enc lrw-dec
    16B 0.98x 1.03x
    64B 1.01x 1.04x
    256B 2.10x 2.14x
    1024B 2.28x 2.33x
    8192B 2.30x 2.33x

    Intel Atom N270 (i586):
    size lrw-enc lrw-dec
    16B 0.97x 0.97x
    64B 1.47x 1.50x
    256B 1.72x 1.69x
    1024B 1.88x 1.81x
    8192B 1.84x 1.79x

    Signed-off-by: Jussi Kivilinna
    Signed-off-by: Herbert Xu

    Jussi Kivilinna
     
  • Patch adds i586/SSE2 assembler implementation of serpent cipher. Assembler
    functions crypt data in four block chunks.

    Patch has been tested with tcrypt and automated filesystem tests.

    Tcrypt benchmarks results (serpent-sse2/serpent_generic speed ratios):

    Intel Atom N270:

    size ecb-enc ecb-dec cbc-enc cbc-dec ctr-enc ctr-dec
    16 0.95x 1.12x 1.02x 1.07x 0.97x 0.98x
    64 1.73x 1.82x 1.08x 1.82x 1.72x 1.73x
    256 2.08x 2.00x 1.04x 2.07x 1.99x 2.01x
    1024 2.28x 2.18x 1.05x 2.23x 2.17x 2.20x
    8192 2.28x 2.13x 1.05x 2.23x 2.18x 2.20x

    Full output:
    http://koti.mbnet.fi/axh/kernel/crypto/atom-n270/serpent-generic.txt
    http://koti.mbnet.fi/axh/kernel/crypto/atom-n270/serpent-sse2.txt

    Userspace test results:

    Encryption/decryption of sse2-i586 vs generic on Intel Atom N270:
    encrypt: 2.35x
    decrypt: 2.54x

    Encryption/decryption of sse2-i586 vs generic on AMD Phenom II:
    encrypt: 1.82x
    decrypt: 2.51x

    Encryption/decryption of sse2-i586 vs generic on Intel Xeon E7330:
    encrypt: 2.99x
    decrypt: 3.48x

    Signed-off-by: Jussi Kivilinna
    Signed-off-by: Herbert Xu

    Jussi Kivilinna
     
  • Patch adds x86_64/SSE2 assembler implementation of serpent cipher. Assembler
    functions crypt data in eigth block chunks (two 4 block chunk SSE2 operations
    in parallel to improve performance on out-of-order CPUs). Glue code is based
    on one from AES-NI implementation, so requests from irq context are redirected
    to cryptd.

    v2:
    - add missing include of linux/module.h
    (appearently crypto.h used to include module.h, which changed for 3.2 by
    commit 7c926402a7e8c9b279968fd94efec8700ba3859e)

    Patch has been tested with tcrypt and automated filesystem tests.

    Tcrypt benchmarks results (serpent-sse2/serpent_generic speed ratios):

    AMD Phenom II 1055T (fam:16, model:10):

    size ecb-enc ecb-dec cbc-enc cbc-dec ctr-enc ctr-dec
    16B 1.03x 1.01x 1.03x 1.05x 1.00x 0.99x
    64B 1.00x 1.01x 1.02x 1.04x 1.02x 1.01x
    256B 2.34x 2.41x 0.99x 2.43x 2.39x 2.40x
    1024B 2.51x 2.57x 1.00x 2.59x 2.56x 2.56x
    8192B 2.50x 2.54x 1.00x 2.55x 2.57x 2.57x

    Intel Celeron T1600 (fam:6, model:15, step:13):

    size ecb-enc ecb-dec cbc-enc cbc-dec ctr-enc ctr-dec
    16B 0.97x 0.97x 1.01x 1.01x 1.01x 1.02x
    64B 1.00x 1.00x 1.00x 1.02x 1.01x 1.01x
    256B 3.41x 3.35x 1.00x 3.39x 3.42x 3.44x
    1024B 3.75x 3.72x 0.99x 3.74x 3.75x 3.75x
    8192B 3.70x 3.68x 0.99x 3.68x 3.69x 3.69x

    Full output:
    http://koti.mbnet.fi/axh/kernel/crypto/phenom-ii-1055t/serpent-generic.txt
    http://koti.mbnet.fi/axh/kernel/crypto/phenom-ii-1055t/serpent-sse2.txt
    http://koti.mbnet.fi/axh/kernel/crypto/celeron-t1600/serpent-generic.txt
    http://koti.mbnet.fi/axh/kernel/crypto/celeron-t1600/serpent-sse2.txt

    Signed-off-by: Jussi Kivilinna
    Signed-off-by: Herbert Xu

    Jussi Kivilinna
     

09 Nov, 2011

24 commits


08 Nov, 2011

13 commits

  • .. with new name. Because nothing says "really solid kernel release"
    like naming it after an extinct animal that just happened to be in the
    news lately.

    Linus Torvalds
     
  • * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tmlind/linux-omap: (31 commits)
    ARM: OMAP: Fix export.h or module.h includes
    ARM: OMAP: omap_device: Include linux/export.h
    ARM: OMAP2: Fix H4 matrix keyboard warning
    ARM: OMAP1: Remove unused omap-alsa.h
    ARM: OMAP1: Fix warnings about enabling 32 KiHz timer
    ARM: OMAP2+: timer: Remove omap_device_pm_latency
    ARM: OMAP2+: clock data: Remove redundant timer clkdev
    ARM: OMAP: Devkit8000: Remove double omap_mux_init_gpio
    ARM: OMAP: usb: musb: OMAP: Delete unused function
    MAINTAINERS: Update linux-omap git repository
    ARM: OMAP: change get_context_loss_count ret value to int
    ARM: OMAP4: hsmmc: configure SDMMC1_DR0 properly
    ARM: OMAP4: hsmmc: Fix Pbias configuration on regulator OFF
    ARM: OMAP3: hwmod: fix variant registration and remove SmartReflex from common list
    ARM: OMAP: I2C: Fix omap_register_i2c_bus() return value on success
    ARM: OMAP: dmtimer: Include linux/module.h
    ARM: OMAP2+: l3-noc: Include linux/module.h
    ARM: OMAP2+: devices: Fixes for McPDM
    ARM: OMAP: Fix errors and warnings when building for one board
    ARM: OMAP3: PM: restrict erratum i443 handling to OMAP3430 only
    ...

    Linus Torvalds
     
  • Mountpoint crossing is similar to following procfs symlinks - we do
    not get ->d_revalidate() called for dentry we have arrived at, with
    unpleasant consequences for NFS4.

    Simple way to reproduce the problem in mainline:

    cat >/tmp/a.c <
    #include
    #include
    main()
    {
    struct flock fl = {.l_type = F_RDLCK, .l_whence = SEEK_SET, .l_len = 1};
    if (fcntl(0, F_SETLK, &fl))
    perror("setlk");
    }
    EOF
    cc /tmp/a.c -o /tmp/test

    then on nfs4:

    mount --bind file1 file2
    /tmp/test < file1 # ok
    /tmp/test < file2 # spews "setlk: No locks available"...

    What happens is the missing call of ->d_revalidate() after mountpoint
    crossing and that's where NFS4 would issue OPEN request to server.

    The fix is simple - treat mountpoint crossing the same way we deal with
    following procfs-style symlinks. I.e. set LOOKUP_JUMPED...

    Cc: stable@kernel.org
    Signed-off-by: Al Viro
    Signed-off-by: Linus Torvalds

    Al Viro
     
  • * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    perf top: Fix live annotation in the --stdio interface
    perf top tui: Don't recalc column widths considering just the first page
    perf report: Add progress bar when processing time ordered events
    perf hists browser: Warn about lost events
    perf tools: Fix a typo of command name as trace-cmd
    perf hists: Fix recalculation of total_period when sorting entries
    perf header: Fix build on old systems
    perf ui browser: Handle K_RESIZE in dialog windows
    perf ui browser: No need to switch char sets that often
    perf hists browser: Use K_TIMER
    perf ui: Rename ui__warning_paranoid to ui__error_paranoid
    perf ui: Reimplement the popup windows using libslang
    perf ui: Reimplement ui__popup_menu using ui__browser
    perf ui: Reimplement ui_helpline using libslang
    perf ui: Improve handling sigwinch a bit
    perf ui progress: Reimplement using slang
    perf evlist: Fix grouping of multiple events

    Linus Torvalds
     
  • Tony Lindgren
     
  • Commit 32aaeffbd4a7457bf2f7448b33b5946ff2a960eb (Merge branch
    'modsplit-Oct31_2011'...) caused some build errors. Fix these
    and make sure we always have export.h or module.h included
    for MODULE_ and EXPORT_SYMBOL users:

    $ grep -rl ^MODULE_ arch/arm/*omap*/*.c | xargs \
    grep -L linux/module.h
    arch/arm/mach-omap2/dsp.c
    arch/arm/mach-omap2/mailbox.c
    arch/arm/mach-omap2/omap-iommu.c
    arch/arm/mach-omap2/smartreflex.c

    Also check we either have export.h or module.h included
    for the files exporting symbols:

    $ grep -rl EXPORT_SYMBOL arch/arm/*omap*/*.c | xargs \
    grep -L linux/export.h | xargs grep -L linux/module.h

    Cc: Russell King
    Signed-off-by: Tony Lindgren

    Tony Lindgren
     
  • Include linux/export.h to fix below build warning:

    CC arch/arm/plat-omap/omap_device.o
    arch/arm/plat-omap/omap_device.c:1055: warning: data definition has no type or storage class
    arch/arm/plat-omap/omap_device.c:1055: warning: type defaults to 'int' in declaration of 'EXPORT_SYMBOL'
    arch/arm/plat-omap/omap_device.c:1055: warning: parameter names (without types) in function declaration

    Signed-off-by: Axel Lin
    Signed-off-by: Tony Lindgren

    Axel Lin
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (47 commits)
    forcedeth: fix a few sparse warnings (variable shadowing)
    forcedeth: Improve stats counters
    forcedeth: remove unneeded stats updates
    forcedeth: Acknowledge only interrupts that are being processed
    forcedeth: fix race when unloading module
    MAINTAINERS/rds: update maintainer
    wanrouter: Remove kernel_lock annotations
    usbnet: fix oops in usbnet_start_xmit
    ixgbe: Fix compile for kernel without CONFIG_PCI_IOV defined
    etherh: Add MAINTAINERS entry for etherh
    bonding: comparing a u8 with -1 is always false
    sky2: fix regression on Yukon Optima
    netlink: clarify attribute length check documentation
    netlink: validate NLA_MSECS length
    i825xx:xscale:8390:freescale: Fix Kconfig dependancies
    macvlan: receive multicast with local address
    tg3: Update version to 3.121
    tg3: Eliminate timer race with reset_task
    tg3: Schedule at most one tg3_reset_task run
    tg3: Obtain PCI function number from device
    ...

    Linus Torvalds
     
  • Signed-off-by: Al Viro
    Signed-off-by: Linus Torvalds

    Al Viro
     
  • This fixes the following sparse warnings:
    drivers/net/ethernet/nvidia/forcedeth.c:2113:7: warning: symbol 'size' shadows an earlier one
    drivers/net/ethernet/nvidia/forcedeth.c:2102:6: originally declared here
    drivers/net/ethernet/nvidia/forcedeth.c:2155:7: warning: symbol 'size' shadows an earlier one
    drivers/net/ethernet/nvidia/forcedeth.c:2102:6: originally declared here
    drivers/net/ethernet/nvidia/forcedeth.c:2227:7: warning: symbol 'size' shadows an earlier one
    drivers/net/ethernet/nvidia/forcedeth.c:2215:6: originally declared here
    drivers/net/ethernet/nvidia/forcedeth.c:2271:7: warning: symbol 'size' shadows an earlier one
    drivers/net/ethernet/nvidia/forcedeth.c:2215:6: originally declared here
    drivers/net/ethernet/nvidia/forcedeth.c:2986:20: warning: symbol 'addr' shadows an earlier one
    drivers/net/ethernet/nvidia/forcedeth.c:2963:6: originally declared here

    Signed-off-by: David Decotigny
    Signed-off-by: David S. Miller

    david decotigny
     
  • Rx byte count was off; instead use the hardware's count. Tx packet
    count was counting pre-TSO packets; instead count on-the-wire packets.
    Report hardware dropped frame count as rx_fifo_errors.

    - The count of transmitted packets reported by the forcedeth driver
    reports pre-TSO (TCP Segmentation Offload) packet counts and not the
    count of the number of packets sent on the wire. This change fixes
    the forcedeth driver to report the correct count. Fixed the code by
    copying the count stored in the NIC H/W to the value reported by the
    driver.

    - Count rx_drop_frame errors as rx_fifo_errors:
    We see a lot of rx_drop_frame errors if we disable the rx bottom-halves
    for too long. Normally, rx_fifo_errors would be counted in this case.
    The rx_drop_frame error count is private to forcedeth and is not
    reported by ifconfig or sysfs. The rx_fifo_errors count is currently
    unused in the forcedeth driver. It is reported by ifconfig as overruns.
    This change reports rx_drop_frame errors as rx_fifo_errors.

    Signed-off-by: David Decotigny
    Signed-off-by: David S. Miller

    Mandeep Baines
     
  • Function ndo_get_stats() updates most of the stats from hardware
    registers, making the manual updates un-needed. This change removes
    these manual updates. Main exception is rx_missed_errors which needs
    manual update.

    Another exception is rx_packets, still updated manually in this commit
    to make sure this patch doesn't change behavior of driver. This will
    be addressed by a future patch.

    Signed-off-by: David Decotigny
    Signed-off-by: David S. Miller

    david decotigny
     
  • This is to avoid a race, accidentally acknowledging an interrupt that
    we didn't notice and won't immediately process. This is based solely
    on code inspection; it is not known if there was an actual bug here.

    Signed-off-by: David Decotigny
    Signed-off-by: David S. Miller

    Mike Ditto