Revision c8061485a0d7569a865a3cc3c63347b0f42b3765 authored by Heiko Carstens on 19 October 2016, 18:28:11 UTC, committed by Ingo Molnar on 20 October 2016, 11:27:47 UTC
The following commit:

  c65eacbe290b ("sched/core: Allow putting thread_info into task_struct")

... made 'struct thread_info' a generic struct with only a
single ::flags member, if CONFIG_THREAD_INFO_IN_TASK_STRUCT=y is
selected.

This change however seems to be quite x86 centric, since at least the
generic preemption code (asm-generic/preempt.h) assumes that struct
thread_info also has a preempt_count member, which apparently was not
true for x86.

We could add a bit more #ifdefs to solve this problem too, but it seems
to be much simpler to make struct thread_info arch specific
again. This also makes the conversion to THREAD_INFO_IN_TASK_STRUCT a
bit easier for architectures that have a couple of arch specific stuff
in their thread_info definition.

The arch specific stuff _could_ be moved to thread_struct. However
keeping them in thread_info makes it easier: accessing thread_info
members is simple, since it is at the beginning of the task_struct,
while the thread_struct is at the end. At least on s390 the offsets
needed to access members of the thread_struct (with task_struct as
base) are too large for various asm instructions.  This is not a
problem when keeping these members within thread_info.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: keescook@chromium.org
Cc: linux-arch@vger.kernel.org
Link: http://lkml.kernel.org/r/1476901693-8492-2-git-send-email-mark.rutland@arm.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
1 parent ed1e7db
History
File Mode Size
ipset
ipvs
Kconfig -rw-r--r-- 48.5 KB
Makefile -rw-r--r-- 8.1 KB
core.c -rw-r--r-- 12.2 KB
nf_conntrack_acct.c -rw-r--r-- 3.0 KB
nf_conntrack_amanda.c -rw-r--r-- 6.0 KB
nf_conntrack_broadcast.c -rw-r--r-- 2.1 KB
nf_conntrack_core.c -rw-r--r-- 51.9 KB
nf_conntrack_ecache.c -rw-r--r-- 9.8 KB
nf_conntrack_expect.c -rw-r--r-- 18.1 KB
nf_conntrack_extend.c -rw-r--r-- 4.7 KB
nf_conntrack_ftp.c -rw-r--r-- 16.3 KB
nf_conntrack_h323_asn1.c -rw-r--r-- 19.7 KB
nf_conntrack_h323_main.c -rw-r--r-- 54.3 KB
nf_conntrack_h323_types.c -rw-r--r-- 87.8 KB
nf_conntrack_helper.c -rw-r--r-- 14.7 KB
nf_conntrack_irc.c -rw-r--r-- 7.7 KB
nf_conntrack_l3proto_generic.c -rw-r--r-- 2.0 KB
nf_conntrack_labels.c -rw-r--r-- 2.3 KB
nf_conntrack_netbios_ns.c -rw-r--r-- 2.2 KB
nf_conntrack_netlink.c -rw-r--r-- 82.5 KB
nf_conntrack_pptp.c -rw-r--r-- 18.2 KB
nf_conntrack_proto.c -rw-r--r-- 10.6 KB
nf_conntrack_proto_dccp.c -rw-r--r-- 28.9 KB
nf_conntrack_proto_generic.c -rw-r--r-- 5.0 KB
nf_conntrack_proto_gre.c -rw-r--r-- 12.2 KB
nf_conntrack_proto_sctp.c -rw-r--r-- 26.0 KB
nf_conntrack_proto_tcp.c -rw-r--r-- 49.2 KB
nf_conntrack_proto_udp.c -rw-r--r-- 8.9 KB
nf_conntrack_proto_udplite.c -rw-r--r-- 10.9 KB
nf_conntrack_sane.c -rw-r--r-- 5.6 KB
nf_conntrack_seqadj.c -rw-r--r-- 6.4 KB
nf_conntrack_sip.c -rw-r--r-- 45.1 KB
nf_conntrack_snmp.c -rw-r--r-- 2.2 KB
nf_conntrack_standalone.c -rw-r--r-- 15.4 KB
nf_conntrack_tftp.c -rw-r--r-- 3.8 KB
nf_conntrack_timeout.c -rw-r--r-- 1.5 KB
nf_conntrack_timestamp.c -rw-r--r-- 2.6 KB
nf_dup_netdev.c -rw-r--r-- 957 bytes
nf_internals.h -rw-r--r-- 690 bytes
nf_log.c -rw-r--r-- 12.1 KB
nf_log_common.c -rw-r--r-- 5.1 KB
nf_nat_amanda.c -rw-r--r-- 2.4 KB
nf_nat_core.c -rw-r--r-- 24.0 KB
nf_nat_ftp.c -rw-r--r-- 3.9 KB
nf_nat_helper.c -rw-r--r-- 6.2 KB
nf_nat_irc.c -rw-r--r-- 3.4 KB
nf_nat_proto_common.c -rw-r--r-- 3.1 KB
nf_nat_proto_dccp.c -rw-r--r-- 2.9 KB
nf_nat_proto_sctp.c -rw-r--r-- 2.4 KB
nf_nat_proto_tcp.c -rw-r--r-- 2.4 KB
nf_nat_proto_udp.c -rw-r--r-- 2.1 KB
nf_nat_proto_udplite.c -rw-r--r-- 2.8 KB
nf_nat_proto_unknown.c -rw-r--r-- 1.5 KB
nf_nat_redirect.c -rw-r--r-- 3.3 KB
nf_nat_sip.c -rw-r--r-- 19.4 KB
nf_nat_tftp.c -rw-r--r-- 1.4 KB
nf_queue.c -rw-r--r-- 5.1 KB
nf_sockopt.c -rw-r--r-- 3.8 KB
nf_synproxy_core.c -rw-r--r-- 9.9 KB
nf_tables_api.c -rw-r--r-- 117.0 KB
nf_tables_core.c -rw-r--r-- 6.7 KB
nf_tables_inet.c -rw-r--r-- 2.5 KB
nf_tables_netdev.c -rw-r--r-- 4.3 KB
nf_tables_trace.c -rw-r--r-- 7.2 KB
nfnetlink.c -rw-r--r-- 13.2 KB
nfnetlink_acct.c -rw-r--r-- 12.9 KB
nfnetlink_cthelper.c -rw-r--r-- 16.7 KB
nfnetlink_cttimeout.c -rw-r--r-- 16.2 KB
nfnetlink_log.c -rw-r--r-- 28.2 KB
nfnetlink_queue.c -rw-r--r-- 37.9 KB
nft_bitwise.c -rw-r--r-- 3.9 KB
nft_byteorder.c -rw-r--r-- 4.8 KB
nft_cmp.c -rw-r--r-- 5.2 KB
nft_compat.c -rw-r--r-- 20.4 KB
nft_counter.c -rw-r--r-- 5.0 KB
nft_ct.c -rw-r--r-- 11.9 KB
nft_dup_netdev.c -rw-r--r-- 2.5 KB
nft_dynset.c -rw-r--r-- 7.5 KB
nft_exthdr.c -rw-r--r-- 3.5 KB
nft_fwd_netdev.c -rw-r--r-- 2.6 KB
nft_hash.c -rw-r--r-- 3.8 KB
nft_immediate.c -rw-r--r-- 3.4 KB
nft_limit.c -rw-r--r-- 6.1 KB
nft_log.c -rw-r--r-- 5.2 KB
nft_lookup.c -rw-r--r-- 4.6 KB
nft_masq.c -rw-r--r-- 2.7 KB
nft_meta.c -rw-r--r-- 10.4 KB
nft_nat.c -rw-r--r-- 7.4 KB
nft_numgen.c -rw-r--r-- 5.4 KB
nft_payload.c -rw-r--r-- 8.9 KB
nft_queue.c -rw-r--r-- 5.3 KB
nft_quota.c -rw-r--r-- 3.0 KB
nft_range.c -rw-r--r-- 3.5 KB
nft_redir.c -rw-r--r-- 2.8 KB
nft_reject.c -rw-r--r-- 3.2 KB
nft_reject_inet.c -rw-r--r-- 3.8 KB
nft_set_hash.c -rw-r--r-- 9.5 KB
nft_set_rbtree.c -rw-r--r-- 8.0 KB
x_tables.c -rw-r--r-- 41.2 KB
xt_AUDIT.c -rw-r--r-- 5.1 KB
xt_CHECKSUM.c -rw-r--r-- 1.8 KB
xt_CLASSIFY.c -rw-r--r-- 2.0 KB
xt_CONNSECMARK.c -rw-r--r-- 3.6 KB
xt_CT.c -rw-r--r-- 10.7 KB
xt_DSCP.c -rw-r--r-- 4.0 KB
xt_HL.c -rw-r--r-- 3.7 KB
xt_HMARK.c -rw-r--r-- 9.1 KB
xt_IDLETIMER.c -rw-r--r-- 7.6 KB
xt_LED.c -rw-r--r-- 5.5 KB
xt_LOG.c -rw-r--r-- 2.8 KB
xt_NETMAP.c -rw-r--r-- 4.7 KB
xt_NFLOG.c -rw-r--r-- 1.9 KB
xt_NFQUEUE.c -rw-r--r-- 3.8 KB
xt_RATEEST.c -rw-r--r-- 4.5 KB
xt_REDIRECT.c -rw-r--r-- 3.0 KB
xt_SECMARK.c -rw-r--r-- 3.2 KB
xt_TCPMSS.c -rw-r--r-- 8.8 KB
xt_TCPOPTSTRIP.c -rw-r--r-- 4.0 KB
xt_TEE.c -rw-r--r-- 4.0 KB
xt_TPROXY.c -rw-r--r-- 17.2 KB
xt_TRACE.c -rw-r--r-- 1.1 KB
xt_addrtype.c -rw-r--r-- 6.6 KB
xt_bpf.c -rw-r--r-- 1.8 KB
xt_cgroup.c -rw-r--r-- 3.6 KB
xt_cluster.c -rw-r--r-- 5.0 KB
xt_comment.c -rw-r--r-- 1.0 KB
xt_connbytes.c -rw-r--r-- 4.5 KB
xt_connlabel.c -rw-r--r-- 2.6 KB
xt_connlimit.c -rw-r--r-- 12.4 KB
xt_connmark.c -rw-r--r-- 4.4 KB
xt_conntrack.c -rw-r--r-- 9.6 KB
xt_cpu.c -rw-r--r-- 1.5 KB
xt_dccp.c -rw-r--r-- 4.4 KB
xt_devgroup.c -rw-r--r-- 2.2 KB
xt_dscp.c -rw-r--r-- 2.8 KB
xt_ecn.c -rw-r--r-- 4.4 KB
xt_esp.c -rw-r--r-- 2.6 KB
xt_hashlimit.c -rw-r--r-- 29.4 KB
xt_helper.c -rw-r--r-- 2.5 KB
xt_hl.c -rw-r--r-- 2.3 KB
xt_ipcomp.c -rw-r--r-- 2.8 KB
xt_iprange.c -rw-r--r-- 3.8 KB
xt_ipvs.c -rw-r--r-- 4.2 KB
xt_l2tp.c -rw-r--r-- 9.0 KB
xt_length.c -rw-r--r-- 1.8 KB
xt_limit.c -rw-r--r-- 5.9 KB
xt_mac.c -rw-r--r-- 1.7 KB
xt_mark.c -rw-r--r-- 2.1 KB
xt_multiport.c -rw-r--r-- 4.6 KB
xt_nat.c -rw-r--r-- 4.5 KB
xt_nfacct.c -rw-r--r-- 2.0 KB
xt_osf.c -rw-r--r-- 9.8 KB
xt_owner.c -rw-r--r-- 3.6 KB
xt_physdev.c -rw-r--r-- 4.1 KB
xt_pkttype.c -rw-r--r-- 1.6 KB
xt_policy.c -rw-r--r-- 4.7 KB
xt_quota.c -rw-r--r-- 1.9 KB
xt_rateest.c -rw-r--r-- 3.7 KB
xt_realm.c -rw-r--r-- 1.4 KB
xt_recent.c -rw-r--r-- 19.3 KB
xt_repldata.h -rw-r--r-- 1.6 KB
xt_sctp.c -rw-r--r-- 5.0 KB
xt_set.c -rw-r--r-- 20.5 KB
xt_socket.c -rw-r--r-- 14.7 KB
xt_state.c -rw-r--r-- 2.0 KB
xt_statistic.c -rw-r--r-- 2.5 KB
xt_string.c -rw-r--r-- 2.5 KB
xt_tcpmss.c -rw-r--r-- 2.5 KB
xt_tcpudp.c -rw-r--r-- 5.6 KB
xt_time.c -rw-r--r-- 8.1 KB
xt_u32.c -rw-r--r-- 2.7 KB

back to top