Loading Documentation/device-mapper/dm-raid.txt +37 −7 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ The target is named "raid" and it accepts the following parameters: raid10 Various RAID10 inspired algorithms chosen by additional params - RAID10: Striped Mirrors (aka 'Striping on top of mirrors') - RAID1E: Integrated Adjacent Stripe Mirroring - RAID1E: Integrated Offset Stripe Mirroring - and other similar RAID10 variants Reference: Chapter 4 of Loading Loading @@ -64,15 +65,15 @@ The target is named "raid" and it accepts the following parameters: synchronisation state for each region. [raid10_copies <# copies>] [raid10_format near] [raid10_format <near|far|offset>] These two options are used to alter the default layout of a RAID10 configuration. The number of copies is can be specified, but the default is 2. There are other variations to how the copies are laid down - the default and only current option is "near". Near copies are what most people think of with respect to mirroring. If these options are left unspecified, or 'raid10_copies 2' and/or 'raid10_format near' are given, then the layouts for 2, 3 and 4 devices are: specified, but the default is 2. There are also three variations to how the copies are laid down - the default is "near". Near copies are what most people think of with respect to mirroring. If these options are left unspecified, or 'raid10_copies 2' and/or 'raid10_format near' are given, then the layouts for 2, 3 and 4 devices are: 2 drives 3 drives 4 drives -------- ---------- -------------- A1 A1 A1 A1 A2 A1 A1 A2 A2 Loading @@ -85,6 +86,33 @@ The target is named "raid" and it accepts the following parameters: 3-device layout is what might be called a 'RAID1E - Integrated Adjacent Stripe Mirroring'. If 'raid10_copies 2' and 'raid10_format far', then the layouts for 2, 3 and 4 devices are: 2 drives 3 drives 4 drives -------- -------------- -------------------- A1 A2 A1 A2 A3 A1 A2 A3 A4 A3 A4 A4 A5 A6 A5 A6 A7 A8 A5 A6 A7 A8 A9 A9 A10 A11 A12 .. .. .. .. .. .. .. .. .. A2 A1 A3 A1 A2 A2 A1 A4 A3 A4 A3 A6 A4 A5 A6 A5 A8 A7 A6 A5 A9 A7 A8 A10 A9 A12 A11 .. .. .. .. .. .. .. .. .. If 'raid10_copies 2' and 'raid10_format offset', then the layouts for 2, 3 and 4 devices are: 2 drives 3 drives 4 drives -------- ------------ ----------------- A1 A2 A1 A2 A3 A1 A2 A3 A4 A2 A1 A3 A1 A2 A2 A1 A4 A3 A3 A4 A4 A5 A6 A5 A6 A7 A8 A4 A3 A6 A4 A5 A6 A5 A8 A7 A5 A6 A7 A8 A9 A9 A10 A11 A12 A6 A5 A9 A7 A8 A10 A9 A12 A11 .. .. .. .. .. .. .. .. .. Here we see layouts closely akin to 'RAID1E - Integrated Offset Stripe Mirroring'. <#raid_devs>: The number of devices composing the array. Each device consists of two entries. The first is the device containing the metadata (if any); the second is the one containing the Loading Loading @@ -142,3 +170,5 @@ Version History 1.3.0 Added support for RAID 10 1.3.1 Allow device replacement/rebuild for RAID 10 1.3.2 Fix/improve redundancy checking for RAID10 1.4.0 Non-functional change. Removes arg from mapping function. 1.4.1 Add RAID10 "far" and "offset" algorithm support. Documentation/networking/tuntap.txt +77 −0 Original line number Diff line number Diff line Loading @@ -105,6 +105,83 @@ Copyright (C) 1999-2000 Maxim Krasnyansky <max_mk@yahoo.com> Proto [2 bytes] Raw protocol(IP, IPv6, etc) frame. 3.3 Multiqueue tuntap interface: From version 3.8, Linux supports multiqueue tuntap which can uses multiple file descriptors (queues) to parallelize packets sending or receiving. The device allocation is the same as before, and if user wants to create multiple queues, TUNSETIFF with the same device name must be called many times with IFF_MULTI_QUEUE flag. char *dev should be the name of the device, queues is the number of queues to be created, fds is used to store and return the file descriptors (queues) created to the caller. Each file descriptor were served as the interface of a queue which could be accessed by userspace. #include <linux/if.h> #include <linux/if_tun.h> int tun_alloc_mq(char *dev, int queues, int *fds) { struct ifreq ifr; int fd, err, i; if (!dev) return -1; memset(&ifr, 0, sizeof(ifr)); /* Flags: IFF_TUN - TUN device (no Ethernet headers) * IFF_TAP - TAP device * * IFF_NO_PI - Do not provide packet information * IFF_MULTI_QUEUE - Create a queue of multiqueue device */ ifr.ifr_flags = IFF_TAP | IFF_NO_PI | IFF_MULTI_QUEUE; strcpy(ifr.ifr_name, dev); for (i = 0; i < queues; i++) { if ((fd = open("/dev/net/tun", O_RDWR)) < 0) goto err; err = ioctl(fd, TUNSETIFF, (void *)&ifr); if (err) { close(fd); goto err; } fds[i] = fd; } return 0; err: for (--i; i >= 0; i--) close(fds[i]); return err; } A new ioctl(TUNSETQUEUE) were introduced to enable or disable a queue. When calling it with IFF_DETACH_QUEUE flag, the queue were disabled. And when calling it with IFF_ATTACH_QUEUE flag, the queue were enabled. The queue were enabled by default after it was created through TUNSETIFF. fd is the file descriptor (queue) that we want to enable or disable, when enable is true we enable it, otherwise we disable it #include <linux/if.h> #include <linux/if_tun.h> int tun_set_queue(int fd, int enable) { struct ifreq ifr; memset(&ifr, 0, sizeof(ifr)); if (enable) ifr.ifr_flags = IFF_ATTACH_QUEUE; else ifr.ifr_flags = IFF_DETACH_QUEUE; return ioctl(fd, TUNSETQUEUE, (void *)&ifr); } Universal TUN/TAP device driver Frequently Asked Question. 1. What platforms are supported by TUN/TAP driver ? Loading MAINTAINERS +1 −19 Original line number Diff line number Diff line Loading @@ -114,12 +114,6 @@ Maintainers List (try to look for most precise areas first) ----------------------------------- 3C505 NETWORK DRIVER M: Philip Blundell <philb@gnu.org> L: netdev@vger.kernel.org S: Maintained F: drivers/net/ethernet/i825xx/3c505* 3C59X NETWORK DRIVER M: Steffen Klassert <klassert@mathematik.tu-chemnitz.de> L: netdev@vger.kernel.org Loading Loading @@ -2361,12 +2355,6 @@ W: http://www.arm.linux.org.uk/ S: Maintained F: drivers/video/cyber2000fb.* CYCLADES 2X SYNC CARD DRIVER M: Arnaldo Carvalho de Melo <acme@ghostprotocols.net> W: http://oops.ghostprotocols.net:81/blog S: Maintained F: drivers/net/wan/cycx* CYCLADES ASYNC MUX DRIVER W: http://www.cyclades.com/ S: Orphan Loading Loading @@ -3067,12 +3055,6 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/kristoffer/linux-hpc.git F: drivers/video/s1d13xxxfb.c F: include/video/s1d13xxxfb.h ETHEREXPRESS-16 NETWORK DRIVER M: Philip Blundell <philb@gnu.org> L: netdev@vger.kernel.org S: Maintained F: drivers/net/ethernet/i825xx/eexpress.* ETHERNET BRIDGE M: Stephen Hemminger <stephen@networkplumber.org> L: bridge@lists.linux-foundation.org Loading Loading @@ -8504,7 +8486,7 @@ F: drivers/usb/gadget/*uvc*.c F: drivers/usb/gadget/webcam.c USB WIRELESS RNDIS DRIVER (rndis_wlan) M: Jussi Kivilinna <jussi.kivilinna@mbnet.fi> M: Jussi Kivilinna <jussi.kivilinna@iki.fi> L: linux-wireless@vger.kernel.org S: Maintained F: drivers/net/wireless/rndis_wlan.c Loading arch/powerpc/crypto/sha1-powerpc-asm.S +2 −2 Original line number Diff line number Diff line Loading @@ -113,7 +113,7 @@ STEPUP4((t)+16, fn) _GLOBAL(powerpc_sha_transform) PPC_STLU r1,-STACKFRAMESIZE(r1) PPC_STLU r1,-INT_FRAME_SIZE(r1) SAVE_8GPRS(14, r1) SAVE_10GPRS(22, r1) Loading Loading @@ -175,5 +175,5 @@ _GLOBAL(powerpc_sha_transform) REST_8GPRS(14, r1) REST_10GPRS(22, r1) addi r1,r1,STACKFRAMESIZE addi r1,r1,INT_FRAME_SIZE blr arch/powerpc/include/asm/bitops.h +0 −2 Original line number Diff line number Diff line Loading @@ -52,8 +52,6 @@ #define smp_mb__before_clear_bit() smp_mb() #define smp_mb__after_clear_bit() smp_mb() #define BITOP_LE_SWIZZLE ((BITS_PER_LONG-1) & ~0x7) /* Macro for generating the ***_bits() functions */ #define DEFINE_BITOP(fn, op, prefix, postfix) \ static __inline__ void fn(unsigned long mask, \ Loading Loading
Documentation/device-mapper/dm-raid.txt +37 −7 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ The target is named "raid" and it accepts the following parameters: raid10 Various RAID10 inspired algorithms chosen by additional params - RAID10: Striped Mirrors (aka 'Striping on top of mirrors') - RAID1E: Integrated Adjacent Stripe Mirroring - RAID1E: Integrated Offset Stripe Mirroring - and other similar RAID10 variants Reference: Chapter 4 of Loading Loading @@ -64,15 +65,15 @@ The target is named "raid" and it accepts the following parameters: synchronisation state for each region. [raid10_copies <# copies>] [raid10_format near] [raid10_format <near|far|offset>] These two options are used to alter the default layout of a RAID10 configuration. The number of copies is can be specified, but the default is 2. There are other variations to how the copies are laid down - the default and only current option is "near". Near copies are what most people think of with respect to mirroring. If these options are left unspecified, or 'raid10_copies 2' and/or 'raid10_format near' are given, then the layouts for 2, 3 and 4 devices are: specified, but the default is 2. There are also three variations to how the copies are laid down - the default is "near". Near copies are what most people think of with respect to mirroring. If these options are left unspecified, or 'raid10_copies 2' and/or 'raid10_format near' are given, then the layouts for 2, 3 and 4 devices are: 2 drives 3 drives 4 drives -------- ---------- -------------- A1 A1 A1 A1 A2 A1 A1 A2 A2 Loading @@ -85,6 +86,33 @@ The target is named "raid" and it accepts the following parameters: 3-device layout is what might be called a 'RAID1E - Integrated Adjacent Stripe Mirroring'. If 'raid10_copies 2' and 'raid10_format far', then the layouts for 2, 3 and 4 devices are: 2 drives 3 drives 4 drives -------- -------------- -------------------- A1 A2 A1 A2 A3 A1 A2 A3 A4 A3 A4 A4 A5 A6 A5 A6 A7 A8 A5 A6 A7 A8 A9 A9 A10 A11 A12 .. .. .. .. .. .. .. .. .. A2 A1 A3 A1 A2 A2 A1 A4 A3 A4 A3 A6 A4 A5 A6 A5 A8 A7 A6 A5 A9 A7 A8 A10 A9 A12 A11 .. .. .. .. .. .. .. .. .. If 'raid10_copies 2' and 'raid10_format offset', then the layouts for 2, 3 and 4 devices are: 2 drives 3 drives 4 drives -------- ------------ ----------------- A1 A2 A1 A2 A3 A1 A2 A3 A4 A2 A1 A3 A1 A2 A2 A1 A4 A3 A3 A4 A4 A5 A6 A5 A6 A7 A8 A4 A3 A6 A4 A5 A6 A5 A8 A7 A5 A6 A7 A8 A9 A9 A10 A11 A12 A6 A5 A9 A7 A8 A10 A9 A12 A11 .. .. .. .. .. .. .. .. .. Here we see layouts closely akin to 'RAID1E - Integrated Offset Stripe Mirroring'. <#raid_devs>: The number of devices composing the array. Each device consists of two entries. The first is the device containing the metadata (if any); the second is the one containing the Loading Loading @@ -142,3 +170,5 @@ Version History 1.3.0 Added support for RAID 10 1.3.1 Allow device replacement/rebuild for RAID 10 1.3.2 Fix/improve redundancy checking for RAID10 1.4.0 Non-functional change. Removes arg from mapping function. 1.4.1 Add RAID10 "far" and "offset" algorithm support.
Documentation/networking/tuntap.txt +77 −0 Original line number Diff line number Diff line Loading @@ -105,6 +105,83 @@ Copyright (C) 1999-2000 Maxim Krasnyansky <max_mk@yahoo.com> Proto [2 bytes] Raw protocol(IP, IPv6, etc) frame. 3.3 Multiqueue tuntap interface: From version 3.8, Linux supports multiqueue tuntap which can uses multiple file descriptors (queues) to parallelize packets sending or receiving. The device allocation is the same as before, and if user wants to create multiple queues, TUNSETIFF with the same device name must be called many times with IFF_MULTI_QUEUE flag. char *dev should be the name of the device, queues is the number of queues to be created, fds is used to store and return the file descriptors (queues) created to the caller. Each file descriptor were served as the interface of a queue which could be accessed by userspace. #include <linux/if.h> #include <linux/if_tun.h> int tun_alloc_mq(char *dev, int queues, int *fds) { struct ifreq ifr; int fd, err, i; if (!dev) return -1; memset(&ifr, 0, sizeof(ifr)); /* Flags: IFF_TUN - TUN device (no Ethernet headers) * IFF_TAP - TAP device * * IFF_NO_PI - Do not provide packet information * IFF_MULTI_QUEUE - Create a queue of multiqueue device */ ifr.ifr_flags = IFF_TAP | IFF_NO_PI | IFF_MULTI_QUEUE; strcpy(ifr.ifr_name, dev); for (i = 0; i < queues; i++) { if ((fd = open("/dev/net/tun", O_RDWR)) < 0) goto err; err = ioctl(fd, TUNSETIFF, (void *)&ifr); if (err) { close(fd); goto err; } fds[i] = fd; } return 0; err: for (--i; i >= 0; i--) close(fds[i]); return err; } A new ioctl(TUNSETQUEUE) were introduced to enable or disable a queue. When calling it with IFF_DETACH_QUEUE flag, the queue were disabled. And when calling it with IFF_ATTACH_QUEUE flag, the queue were enabled. The queue were enabled by default after it was created through TUNSETIFF. fd is the file descriptor (queue) that we want to enable or disable, when enable is true we enable it, otherwise we disable it #include <linux/if.h> #include <linux/if_tun.h> int tun_set_queue(int fd, int enable) { struct ifreq ifr; memset(&ifr, 0, sizeof(ifr)); if (enable) ifr.ifr_flags = IFF_ATTACH_QUEUE; else ifr.ifr_flags = IFF_DETACH_QUEUE; return ioctl(fd, TUNSETQUEUE, (void *)&ifr); } Universal TUN/TAP device driver Frequently Asked Question. 1. What platforms are supported by TUN/TAP driver ? Loading
MAINTAINERS +1 −19 Original line number Diff line number Diff line Loading @@ -114,12 +114,6 @@ Maintainers List (try to look for most precise areas first) ----------------------------------- 3C505 NETWORK DRIVER M: Philip Blundell <philb@gnu.org> L: netdev@vger.kernel.org S: Maintained F: drivers/net/ethernet/i825xx/3c505* 3C59X NETWORK DRIVER M: Steffen Klassert <klassert@mathematik.tu-chemnitz.de> L: netdev@vger.kernel.org Loading Loading @@ -2361,12 +2355,6 @@ W: http://www.arm.linux.org.uk/ S: Maintained F: drivers/video/cyber2000fb.* CYCLADES 2X SYNC CARD DRIVER M: Arnaldo Carvalho de Melo <acme@ghostprotocols.net> W: http://oops.ghostprotocols.net:81/blog S: Maintained F: drivers/net/wan/cycx* CYCLADES ASYNC MUX DRIVER W: http://www.cyclades.com/ S: Orphan Loading Loading @@ -3067,12 +3055,6 @@ T: git git://git.kernel.org/pub/scm/linux/kernel/git/kristoffer/linux-hpc.git F: drivers/video/s1d13xxxfb.c F: include/video/s1d13xxxfb.h ETHEREXPRESS-16 NETWORK DRIVER M: Philip Blundell <philb@gnu.org> L: netdev@vger.kernel.org S: Maintained F: drivers/net/ethernet/i825xx/eexpress.* ETHERNET BRIDGE M: Stephen Hemminger <stephen@networkplumber.org> L: bridge@lists.linux-foundation.org Loading Loading @@ -8504,7 +8486,7 @@ F: drivers/usb/gadget/*uvc*.c F: drivers/usb/gadget/webcam.c USB WIRELESS RNDIS DRIVER (rndis_wlan) M: Jussi Kivilinna <jussi.kivilinna@mbnet.fi> M: Jussi Kivilinna <jussi.kivilinna@iki.fi> L: linux-wireless@vger.kernel.org S: Maintained F: drivers/net/wireless/rndis_wlan.c Loading
arch/powerpc/crypto/sha1-powerpc-asm.S +2 −2 Original line number Diff line number Diff line Loading @@ -113,7 +113,7 @@ STEPUP4((t)+16, fn) _GLOBAL(powerpc_sha_transform) PPC_STLU r1,-STACKFRAMESIZE(r1) PPC_STLU r1,-INT_FRAME_SIZE(r1) SAVE_8GPRS(14, r1) SAVE_10GPRS(22, r1) Loading Loading @@ -175,5 +175,5 @@ _GLOBAL(powerpc_sha_transform) REST_8GPRS(14, r1) REST_10GPRS(22, r1) addi r1,r1,STACKFRAMESIZE addi r1,r1,INT_FRAME_SIZE blr
arch/powerpc/include/asm/bitops.h +0 −2 Original line number Diff line number Diff line Loading @@ -52,8 +52,6 @@ #define smp_mb__before_clear_bit() smp_mb() #define smp_mb__after_clear_bit() smp_mb() #define BITOP_LE_SWIZZLE ((BITS_PER_LONG-1) & ~0x7) /* Macro for generating the ***_bits() functions */ #define DEFINE_BITOP(fn, op, prefix, postfix) \ static __inline__ void fn(unsigned long mask, \ Loading