#
5a9ee0be |
| 22-Aug-2014 |
Jon Paul Maloy <jon.maloy@ericsson.com> |
tipc: use registry when scanning sockets
The functions tipc_port_get_ports() and tipc_port_reinit() scan over all sockets/ports to access each of them. This is done by using a dedicated linked list,
tipc: use registry when scanning sockets
The functions tipc_port_get_ports() and tipc_port_reinit() scan over all sockets/ports to access each of them. This is done by using a dedicated linked list, 'tipc_socks' where all sockets are members. The list is in turn protected by a spinlock, 'port_list_lock', while each socket is locked by using port_lock at the moment of access.
In order to reduce complexity and risk of deadlock, we want to get rid of the linked list and the accompanying spinlock.
This is what we do in this commit. Instead of the linked list, we use the port registry to scan across the sockets. We also add usage of bh_lock_sock() inside the scope of port_lock in both functions, as a preparation for the complete removal of port_lock.
Finally, we move the functions from port.c to socket.c, and rename them to tipc_sk_sock_show() and tipc_sk_reinit() repectively.
Signed-off-by: Jon Maloy <jon.maloy@ericsson.com> Reviewed-by: Erik Hugne <erik.hugne@ericsson.com> Reviewed-by: Ying Xue <ying.xue@windriver.com> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
#
50100a5e |
| 22-Aug-2014 |
Jon Paul Maloy <jon.maloy@ericsson.com> |
tipc: use pseudo message to wake up sockets after link congestion
The current link implementation keeps a linked list of blocked ports/ sockets that is populated when there is link congestion. The p
tipc: use pseudo message to wake up sockets after link congestion
The current link implementation keeps a linked list of blocked ports/ sockets that is populated when there is link congestion. The purpose of this is to let the link know which users to wake up when the congestion abates.
This adds unnecessary complexity to the data structure and the code, since it forces us to involve the link each time we want to delete a socket. It also forces us to grab the spinlock port_lock within the scope of node_lock. We want to get rid of this direct dependence, as well as the deadlock hazard resulting from the usage of port_lock.
In this commit, we instead let the link keep list of a "wakeup" pseudo messages for use in such situations. Those messages are sent to the pending sockets via the ordinary message reception path, and wake up the socket's owner when they are received.
This enables us to get rid of the 'waiting_ports' linked lists in struct tipc_port that manifest this direct reference. As a consequence, we can eliminate another BH entry into the socket, and hence the need to grab port_lock. This is a further step in our effort to remove port_lock altogether.
Signed-off-by: Jon Maloy <jon.maloy@ericsson.com> Reviewed-by: Erik Hugne <erik.hugne@ericsson.com> Reviewed-by: Ying Xue <ying.xue@windriver.com> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
#
80b304fd |
| 22-Aug-2014 |
Ingo Molnar <mingo@kernel.org> |
Merge tag 'efi-urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/mfleming/efi into x86/urgent
Pull EFI fixes from Matt Fleming:
* WARN_ON(!spin_is_locked()) always triggers on non-SMP machi
Merge tag 'efi-urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/mfleming/efi into x86/urgent
Pull EFI fixes from Matt Fleming:
* WARN_ON(!spin_is_locked()) always triggers on non-SMP machines. Swap it for the more canonical lockdep_assert_held() which always does the right thing - Guenter Roeck
* Assign the correct value to efi.runtime_version on arm64 so that all the runtime services can be invoked - Semen Protsenko
Signed-off-by: Ingo Molnar <mingo@kernel.org>
show more ...
|
#
2871f352 |
| 21-Aug-2014 |
Mauro Carvalho Chehab <m.chehab@samsung.com> |
Merge tag 'v3.17-rc1' into patchwork
Linux 3.17-rc1
|
#
5b49ab3e |
| 19-Aug-2014 |
Brian Norris <computersforpeace@gmail.com> |
Merge l2-mtd/next into l2-mtd/master
|
Revision tags: v3.17-rc1 |
|
#
5e2aa2ed |
| 07-Aug-2014 |
Dmitry Torokhov <dmitry.torokhov@gmail.com> |
Merge branch 'next' into for-linus
Prepare first round of input updates for 3.17.
|
#
ae045e24 |
| 06-Aug-2014 |
Linus Torvalds <torvalds@linux-foundation.org> |
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
Pull networking updates from David Miller: "Highlights:
1) Steady transitioning of the BPF instructure to a generic spot so
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
Pull networking updates from David Miller: "Highlights:
1) Steady transitioning of the BPF instructure to a generic spot so all kernel subsystems can make use of it, from Alexei Starovoitov.
2) SFC driver supports busy polling, from Alexandre Rames.
3) Take advantage of hash table in UDP multicast delivery, from David Held.
4) Lighten locking, in particular by getting rid of the LRU lists, in inet frag handling. From Florian Westphal.
5) Add support for various RFC6458 control messages in SCTP, from Geir Ola Vaagland.
6) Allow to filter bridge forwarding database dumps by device, from Jamal Hadi Salim.
7) virtio-net also now supports busy polling, from Jason Wang.
8) Some low level optimization tweaks in pktgen from Jesper Dangaard Brouer.
9) Add support for ipv6 address generation modes, so that userland can have some input into the process. From Jiri Pirko.
10) Consolidate common TCP connection request code in ipv4 and ipv6, from Octavian Purdila.
11) New ARP packet logger in netfilter, from Pablo Neira Ayuso.
12) Generic resizable RCU hash table, with intial users in netlink and nftables. From Thomas Graf.
13) Maintain a name assignment type so that userspace can see where a network device name came from (enumerated by kernel, assigned explicitly by userspace, etc.) From Tom Gundersen.
14) Automatic flow label generation on transmit in ipv6, from Tom Herbert.
15) New packet timestamping facilities from Willem de Bruijn, meant to assist in measuring latencies going into/out-of the packet scheduler, latency from TCP data transmission to ACK, etc"
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1536 commits) cxgb4 : Disable recursive mailbox commands when enabling vi net: reduce USB network driver config options. tg3: Modify tg3_tso_bug() to handle multiple TX rings amd-xgbe: Perform phy connect/disconnect at dev open/stop amd-xgbe: Use dma_set_mask_and_coherent to set DMA mask net: sun4i-emac: fix memory leak on bad packet sctp: fix possible seqlock seadlock in sctp_packet_transmit() Revert "net: phy: Set the driver when registering an MDIO bus device" cxgb4vf: Turn off SGE RX/TX Callback Timers and interrupts in PCI shutdown routine team: Simplify return path of team_newlink bridge: Update outdated comment on promiscuous mode net-timestamp: ACK timestamp for bytestreams net-timestamp: TCP timestamping net-timestamp: SCHED timestamp on entering packet scheduler net-timestamp: add key to disambiguate concurrent datagrams net-timestamp: move timestamp flags out of sk_flags net-timestamp: extend SCM_TIMESTAMPING ancillary data struct cxgb4i : Move stray CPL definitions to cxgb4 driver tcp: reduce spurious retransmits due to transient SACK reneging qlcnic: Initialize dcbnl_ops before register_netdev ...
show more ...
|
#
cf6f3976 |
| 06-Aug-2014 |
Jiri Kosina <jkosina@suse.cz> |
Merge branches 'for-3.17/upstream', 'for-3.17/cp2112', 'for-3.17/huion', 'for-3.17/hyperv', 'for-3.17/i2c', 'for-3.17/lenovo', 'for-3.17/rmi' and 'for-3.17/sony' into for-linus
|
#
aa9e0de8 |
| 05-Aug-2014 |
Paul Moore <pmoore@redhat.com> |
Merge tag 'v3.16' into next
Linux 3.16
|
Revision tags: v3.16, v3.16-rc7 |
|
#
b9f12a5d |
| 24-Jul-2014 |
Dmitry Torokhov <dmitry.torokhov@gmail.com> |
Merge tag 'v3.16-rc6' into next
Merge with mainline to bring in changes to MFD to allow merging ipaq-micro-ts driver.
|
Revision tags: v3.16-rc6 |
|
#
4e9816d0 |
| 19-Jul-2014 |
Olof Johansson <olof@lixom.net> |
Merge tag 'v3.16-rc5' into next/fixes-non-critical
Linux 3.16-rc5
|
#
ee40d4bb |
| 16-Jul-2014 |
David S. Miller <davem@davemloft.net> |
Merge branch 'tipc-next'
Jon Maloy says:
==================== tipc: multicast and internal users to new send functions
We move the remaining data transmit users: multicast, name table distributor,
Merge branch 'tipc-next'
Jon Maloy says:
==================== tipc: multicast and internal users to new send functions
We move the remaining data transmit users: multicast, name table distributor, and link internal protocols to use the new data transmission framework introduced in a previous commit series ("tipc: new unicast transmission code").
Finally, we remove the code obsoleted by the new functions.
v2: - Fixed a braindead, but harmless return sequence in commit #3, as reported by David Miller. - Rebased series to 3.16.0-rc5+ ====================
Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
#
078bec82 |
| 16-Jul-2014 |
Jon Paul Maloy <jon.maloy@ericsson.com> |
tipc: add new functions for multicast and broadcast distribution
We add a new broadcast link transmit function in bclink.c and a new receive function in socket.c. The purpose is to move the branchin
tipc: add new functions for multicast and broadcast distribution
We add a new broadcast link transmit function in bclink.c and a new receive function in socket.c. The purpose is to move the branching between external and internal destination down to the link layer, just as we have done with unicast in earlier commits. We also make use of the new link-independent fragmentation support that was introduced in an earlier commit series.
This gives a shorter and simpler code path, and makes it possible to obtain copy-free buffer delivery to all node local destination sockets.
The new transmission code is added in parallel with the existing one, and will be used by the socket multicast send function in the next commit in this series.
Signed-off-by: Jon Maloy <jon.maloy@ericsson.com> Reviewed-by: Erik Hugne <erik.hugne@ericsson.com> Reviewed-by: Ying Xue <ying.xue@windriver.com> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
#
afdb0943 |
| 16-Jul-2014 |
Thomas Gleixner <tglx@linutronix.de> |
Merge tag 'v3.16-rc5' into timers/core
Reason: Bring in upstream modifications, so the pending changes which depend on them can be queued.
|
#
bd89bb78 |
| 16-Jul-2014 |
James Morris <james.l.morris@oracle.com> |
Sync with the changes pushed by Serge in the last merge window.
|
Revision tags: v3.16-rc5 |
|
#
f1615bbe |
| 07-Jul-2014 |
Daniel Vetter <daniel.vetter@ffwll.ch> |
Merge tag 'v3.16-rc4' into drm-intel-next-queued
Due to Dave's vacation drm-next hasn't opened yet for 3.17 so I couldn't move my drm-intel-next queue forward yet like I usually do. Just pull in the
Merge tag 'v3.16-rc4' into drm-intel-next-queued
Due to Dave's vacation drm-next hasn't opened yet for 3.17 so I couldn't move my drm-intel-next queue forward yet like I usually do. Just pull in the latest upstream -rc to unblock patch merging - I don't want to needlessly rebase my current patch pile really and void all the testing we've done already.
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
show more ...
|
Revision tags: v3.16-rc4, v3.16-rc3 |
|
#
0ff9275a |
| 27-Jun-2014 |
David S. Miller <davem@davemloft.net> |
Merge branch 'tipc-next'
Jon Maloy says:
==================== tipc: new unicast transmission code
As a step towards making the data transmission code more maintainable and performant, we introduce
Merge branch 'tipc-next'
Jon Maloy says:
==================== tipc: new unicast transmission code
As a step towards making the data transmission code more maintainable and performant, we introduce a number of new functions, both for building, sending and rejecting messages. The new functions will eventually be used for alla data transmission, user data unicast, service internal messaging, and multicast/broadcast.
We start with this series, where we introduce the functions, and let user data unicast and the internal connection protocol use them. The remaining users will come in a later series.
There are only minor changes to data structures, and no protocol changes, so the older functions can still be used in parallel for some time. Until the old functions are removed, we use temporary names for the new functions, such as tipc_build_msg2, tipc_link_xmit2.
It should be noted that the first two commits are unrelated to the rest of the series. ====================
Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
#
60120526 |
| 25-Jun-2014 |
Jon Paul Maloy <jon.maloy@ericsson.com> |
tipc: simplify connection congestion handling
As a consequence of the recently introduced serialized access to the socket in commit 8d94168a761819d10252bab1f8de6d7b202c3baa ("tipc: same receive code
tipc: simplify connection congestion handling
As a consequence of the recently introduced serialized access to the socket in commit 8d94168a761819d10252bab1f8de6d7b202c3baa ("tipc: same receive code path for connection protocol and data messages") we can make a number of simplifications in the detection and handling of connection congestion situations.
- We don't need to keep two counters, one for sent messages and one for acked messages. There is no longer any risk for races between acknowledge messages arriving in BH and data message sending running in user context. So we merge this into one counter, 'sent_unacked', which is incremented at sending and subtracted from at acknowledge reception.
- We don't need to set the 'congested' field in tipc_port to true before we sent the message, and clear it when sending is successful. (As a matter of fact, it was never necessary; the field was set in link_schedule_port() before any wakeup could arrive anyway.)
- We keep the conditions for link congestion and connection connection congestion separated. There would otherwise be a risk that an arriving acknowledge message may wake up a user sleeping because of link congestion.
- We can simplify reception of acknowledge messages.
We also make some cosmetic/structural changes:
- We rename the 'congested' field to the more correct 'link_cong´.
- We rename 'conn_unacked' to 'rcv_unacked'
- We move the above mentioned fields from struct tipc_port to struct tipc_sock.
Signed-off-by: Jon Maloy <jon.maloy@ericsson.com> Reviewed-by: Erik Hugne <erik.hugne@ericsson.com> Reviewed-by: Ying Xue <ying.xue@windriver.com> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
#
ac0074ee |
| 25-Jun-2014 |
Jon Paul Maloy <jon.maloy@ericsson.com> |
tipc: clean up connection protocol reception function
We simplify the code for receiving connection probes, leveraging the recently introduced tipc_msg_reverse() function. We also stick to the princ
tipc: clean up connection protocol reception function
We simplify the code for receiving connection probes, leveraging the recently introduced tipc_msg_reverse() function. We also stick to the principle of sending a possible response message directly from the calling (tipc_sk_rcv or backlog_rcv) functions, hence making the call chain shallower and easier to follow.
We make one small protocol change here, allowed according to the spec. If a protocol message arrives from a remote socket that is not the one we are connected to, we are currently generating a connection abort message and send it to the source. This behavior is unnecessary, and might even be a security risk, so instead we now choose to only ignore the message. The consequnce for the sender is that he will need longer time to discover his mistake (until the next timeout), but this is an extreme corner case, and may happen anyway under other circumstances, so we deem this change acceptable.
Signed-off-by: Jon Maloy <jon.maloy@ericsson.com> Reviewed-by: Erik Hugne <erik.hugne@ericsson.com> Reviewed-by: Ying Xue <ying.xue@windriver.com> Signed-off-by: David S. Miller <davem@davemloft.net>
show more ...
|
#
f01387d2 |
| 24-Jun-2014 |
James Morris <james.l.morris@oracle.com> |
Merge commit 'v3.15' into next
|
Revision tags: v3.16-rc2 |
|
#
3b3dab5f |
| 20-Jun-2014 |
Arnd Bergmann <arnd@arndb.de> |
Merge tag 'sti-fixes-for-v3.16-rc1' of git://git.stlinux.com/devel/kernel/linux-sti into fixes
Merge "STi: DT fixes for v3.16" from Maxime Coquelin:
Couple of DT fixes for STi platform issues disco
Merge tag 'sti-fixes-for-v3.16-rc1' of git://git.stlinux.com/devel/kernel/linux-sti into fixes
Merge "STi: DT fixes for v3.16" from Maxime Coquelin:
Couple of DT fixes for STi platform issues discovered on V3.16-rc1.
The fixes included are: - Ethernet clocks were wrongly defined for STiH415/416 platforms - STiH416 B2020 revision E DTS file name contained uppercase, change to lowercase.
* tag 'sti-fixes-for-v3.16-rc1' of git://git.stlinux.com/devel/kernel/linux-sti: (2963 commits) ARM: stih41x: Rename stih416-b2020-revE.dts to stih416-b2020e.dts ARM: STi: DT: Properly define sti-ethclk & stmmaceth for stih415/6
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
show more ...
|
#
03ab3da3 |
| 18-Jun-2014 |
H. Peter Anvin <hpa@linux.intel.com> |
Merge tag 'v3.16-rc1' into x86/cpufeature
Linux 3.16-rc1
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
#
170b5910 |
| 17-Jun-2014 |
Paul Moore <pmoore@redhat.com> |
Merge tag 'v3.15' into next
Linux 3.15
|
#
50e59058 |
| 17-Jun-2014 |
Mauro Carvalho Chehab <m.chehab@samsung.com> |
Merge tag 'v3.16-rc1' into patchwork
Linux 3.16-rc1
* tag 'v3.16-rc1': (11443 commits) Linux 3.16-rc1 net: sctp: fix permissions for rto_alpha and rto_beta knobs vxlan: Checksum fixes net:
Merge tag 'v3.16-rc1' into patchwork
Linux 3.16-rc1
* tag 'v3.16-rc1': (11443 commits) Linux 3.16-rc1 net: sctp: fix permissions for rto_alpha and rto_beta knobs vxlan: Checksum fixes net: add skb_pop_rcv_encapsulation udp: call __skb_checksum_complete when doing full checksum net: Fix save software checksum complete net: Fix GSO constants to match NETIF flags fix __swap_writepage() compile failure on old gcc versions udp: ipv4: do not waste time in __udp4_lib_mcast_demux_lookup vxlan: use dev->needed_headroom instead of dev->hard_header_len MAINTAINERS: update cxgb4 maintainer x86/vdso: Fix vdso_install NVMe: Fix START_STOP_UNIT Scsi->NVMe translation. btrfs: fix error handling in create_pending_snapshot btrfs: fix use of uninit "ret" in end_extent_writepage() btrfs: free ulist in qgroup_shared_accounting() error path Btrfs: fix qgroups sanity test crash or hang btrfs: prevent RCU warning when dereferencing radix tree slot Btrfs: fix unfinished readahead thread for raid5/6 degraded mounting btrfs: new ioctl TREE_SEARCH_V2 ...
show more ...
|
#
f0b1f644 |
| 17-Jun-2014 |
Wolfram Sang <wsa@the-dreams.de> |
Merge tag 'v3.16-rc1' into i2c/for-next
Merge a stable base (Linux 3.16-rc1)
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
|