From owner-svn-src-user@freebsd.org Mon Jan 15 00:29:18 2018 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5CB5EE6D433 for ; Mon, 15 Jan 2018 00:29:18 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 38A5275178; Mon, 15 Jan 2018 00:29:18 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 886EC10BD; Mon, 15 Jan 2018 00:29:17 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w0F0TH5F034786; Mon, 15 Jan 2018 00:29:17 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w0F0THX8034785; Mon, 15 Jan 2018 00:29:17 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201801150029.w0F0THX8034785@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Mon, 15 Jan 2018 00:29:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r327980 - user/markj/netdump X-SVN-Group: user X-SVN-Commit-Author: markj X-SVN-Commit-Paths: user/markj/netdump X-SVN-Commit-Revision: 327980 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Jan 2018 00:29:18 -0000 Author: markj Date: Mon Jan 15 00:29:17 2018 New Revision: 327980 URL: https://svnweb.freebsd.org/changeset/base/327980 Log: Create a branch for integrating changes needed for netdump. netdump is a facility that allows the kernel to transmit a kernel dump over UDP to a remote server, instead of saving it to local media. This is useful for diskless systems and for centralized collection of kernel dumps in a lab environment. This implementation will provide a kernel netdump client, including hooks for some NIC drivers, and support for configuration with dumpon(8). Some extensions to the mbuf allocator make it possible to allocate mbufs/clusters after a panic using a pre-allocated pool; this is done without imposing any runtime overhead in the regular allocator and without having to modify driver tx/rx code. The netdump server component is available in the ports tree as ftp/netdumpd. Added: - copied from r327979, head/ Directory Properties: user/markj/netdump/ (props changed) From owner-svn-src-user@freebsd.org Mon Jan 15 00:47:34 2018 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A5573E6E63D for ; Mon, 15 Jan 2018 00:47:34 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 8139175AD4; Mon, 15 Jan 2018 00:47:34 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BE3EC1421; Mon, 15 Jan 2018 00:47:33 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w0F0lXpk042991; Mon, 15 Jan 2018 00:47:33 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w0F0lXMC042989; Mon, 15 Jan 2018 00:47:33 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201801150047.w0F0lXMC042989@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Mon, 15 Jan 2018 00:47:33 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r327981 - user/markj/netdump/sys/vm X-SVN-Group: user X-SVN-Commit-Author: markj X-SVN-Commit-Paths: user/markj/netdump/sys/vm X-SVN-Commit-Revision: 327981 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Jan 2018 00:47:34 -0000 Author: markj Date: Mon Jan 15 00:47:33 2018 New Revision: 327981 URL: https://svnweb.freebsd.org/changeset/base/327981 Log: Add a flag to disable per-CPU item caching in a given zone. Modified: user/markj/netdump/sys/vm/uma.h user/markj/netdump/sys/vm/uma_core.c Modified: user/markj/netdump/sys/vm/uma.h ============================================================================== --- user/markj/netdump/sys/vm/uma.h Mon Jan 15 00:29:17 2018 (r327980) +++ user/markj/netdump/sys/vm/uma.h Mon Jan 15 00:47:33 2018 (r327981) @@ -265,8 +265,8 @@ uma_zone_t uma_zcache_create(char *name, int size, uma * information in the vm_page. */ #define UMA_ZONE_SECONDARY 0x0200 /* Zone is a Secondary Zone */ -/* 0x0400 Unused */ -#define UMA_ZONE_MAXBUCKET 0x0800 /* Use largest buckets */ +#define UMA_ZONE_NOBUCKET 0x0400 /* Do not use buckets. */ +#define UMA_ZONE_MAXBUCKET 0x0800 /* Use largest buckets. */ #define UMA_ZONE_CACHESPREAD 0x1000 /* * Spread memory start locations across * all possible cache lines. May Modified: user/markj/netdump/sys/vm/uma_core.c ============================================================================== --- user/markj/netdump/sys/vm/uma_core.c Mon Jan 15 00:29:17 2018 (r327980) +++ user/markj/netdump/sys/vm/uma_core.c Mon Jan 15 00:47:33 2018 (r327981) @@ -1659,10 +1659,12 @@ zone_ctor(void *mem, int size, void *udata, int flags) } out: - if ((arg->flags & UMA_ZONE_MAXBUCKET) == 0) - zone->uz_count = bucket_select(zone->uz_size); - else + if ((arg->flags & UMA_ZONE_MAXBUCKET) != 0) zone->uz_count = BUCKET_MAX; + else if ((arg->flags & UMA_ZONE_NOBUCKET) != 0) + zone->uz_count = 0; + else + zone->uz_count = bucket_select(zone->uz_size); zone->uz_count_min = zone->uz_count; return (0); From owner-svn-src-user@freebsd.org Mon Jan 15 00:50:10 2018 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 62642E6E85E for ; Mon, 15 Jan 2018 00:50:10 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id EF21075C51; Mon, 15 Jan 2018 00:50:09 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 2D1721429; Mon, 15 Jan 2018 00:50:09 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w0F0o9CS043149; Mon, 15 Jan 2018 00:50:09 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w0F0o8Fe043137; Mon, 15 Jan 2018 00:50:08 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201801150050.w0F0o8Fe043137@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Mon, 15 Jan 2018 00:50:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r327982 - in user/markj/netdump: etc/mtree include sys/conf sys/kern sys/net sys/netinet/netdump sys/sys X-SVN-Group: user X-SVN-Commit-Author: markj X-SVN-Commit-Paths: in user/markj/netdump: etc/mtree include sys/conf sys/kern sys/net sys/netinet/netdump sys/sys X-SVN-Commit-Revision: 327982 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Jan 2018 00:50:10 -0000 Author: markj Date: Mon Jan 15 00:50:08 2018 New Revision: 327982 URL: https://svnweb.freebsd.org/changeset/base/327982 Log: Add netdump client code and mbuf allocator hooks. Added: user/markj/netdump/sys/netinet/netdump/ user/markj/netdump/sys/netinet/netdump/netdump.h user/markj/netdump/sys/netinet/netdump/netdump_client.c Modified: user/markj/netdump/etc/mtree/BSD.include.dist user/markj/netdump/include/Makefile user/markj/netdump/sys/conf/NOTES user/markj/netdump/sys/conf/files user/markj/netdump/sys/conf/options user/markj/netdump/sys/kern/kern_mbuf.c user/markj/netdump/sys/kern/kern_shutdown.c user/markj/netdump/sys/net/if_var.h user/markj/netdump/sys/sys/conf.h user/markj/netdump/sys/sys/mbuf.h Modified: user/markj/netdump/etc/mtree/BSD.include.dist ============================================================================== --- user/markj/netdump/etc/mtree/BSD.include.dist Mon Jan 15 00:47:33 2018 (r327981) +++ user/markj/netdump/etc/mtree/BSD.include.dist Mon Jan 15 00:50:08 2018 (r327982) @@ -284,6 +284,8 @@ netinet cc .. + netdump + .. .. netinet6 .. Modified: user/markj/netdump/include/Makefile ============================================================================== --- user/markj/netdump/include/Makefile Mon Jan 15 00:47:33 2018 (r327981) +++ user/markj/netdump/include/Makefile Mon Jan 15 00:50:08 2018 (r327982) @@ -56,6 +56,7 @@ LSUBDIRS= cam/ata cam/mmc cam/nvme cam/scsi \ net/altq \ netgraph/atm netgraph/netflow \ netinet/cc \ + netinet/netdump \ security/audit \ security/mac_biba security/mac_bsdextended security/mac_lomac \ security/mac_mls security/mac_partition \ Modified: user/markj/netdump/sys/conf/NOTES ============================================================================== --- user/markj/netdump/sys/conf/NOTES Mon Jan 15 00:47:33 2018 (r327981) +++ user/markj/netdump/sys/conf/NOTES Mon Jan 15 00:50:08 2018 (r327982) @@ -1032,6 +1032,9 @@ options TCP_SIGNATURE #include support for RFC 2385 # a smooth scheduling of the traffic. options DUMMYNET +options NETDUMP +options NETDUMP_DEBUG + ##################################################################### # FILESYSTEM OPTIONS Modified: user/markj/netdump/sys/conf/files ============================================================================== --- user/markj/netdump/sys/conf/files Mon Jan 15 00:47:33 2018 (r327981) +++ user/markj/netdump/sys/conf/files Mon Jan 15 00:50:08 2018 (r327982) @@ -4307,6 +4307,7 @@ netinet/libalias/alias_mod.c optional libalias | netgr netinet/libalias/alias_proxy.c optional libalias inet | netgraph_nat inet netinet/libalias/alias_util.c optional libalias inet | netgraph_nat inet netinet/libalias/alias_sctp.c optional libalias inet | netgraph_nat inet +netinet/netdump/netdump_client.c optional inet netdump netinet6/dest6.c optional inet6 netinet6/frag6.c optional inet6 netinet6/icmp6.c optional inet6 Modified: user/markj/netdump/sys/conf/options ============================================================================== --- user/markj/netdump/sys/conf/options Mon Jan 15 00:47:33 2018 (r327981) +++ user/markj/netdump/sys/conf/options Mon Jan 15 00:50:08 2018 (r327982) @@ -310,6 +310,9 @@ NFS_ROOT opt_nfsroot.h # SMB/CIFS requester NETSMB opt_netsmb.h +NETDUMP opt_global.h +NETDUMP_DEBUG opt_netdump.h + # Options used only in subr_param.c. HZ opt_param.h MAXFILES opt_param.h Modified: user/markj/netdump/sys/kern/kern_mbuf.c ============================================================================== --- user/markj/netdump/sys/kern/kern_mbuf.c Mon Jan 15 00:47:33 2018 (r327981) +++ user/markj/netdump/sys/kern/kern_mbuf.c Mon Jan 15 00:50:08 2018 (r327982) @@ -40,6 +40,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -379,7 +380,189 @@ mbuf_init(void *dummy) } SYSINIT(mbuf, SI_SUB_MBUF, SI_ORDER_FIRST, mbuf_init, NULL); +#ifdef NETDUMP +/* External functions invoked from the netdump code. */ +void netdump_mbuf_init(int, int); +void netdump_mbuf_drain(void); +void netdump_mbuf_dump(void); + +static struct mbufq nd_mbufq; +static struct mbufq nd_clustq; + +static uma_zone_t nd_zone_mbuf; +static uma_zone_t nd_zone_clust; +static uma_zone_t nd_zone_pack; + +static int +nd_buf_import(void *arg, void **store, int count, int domain __unused, + int flags) +{ + struct mbufq *q; + struct mbuf *m; + int i; + + q = arg; + + for (i = 0; i < count; i++) { + m = mbufq_dequeue(q); + if (m == NULL) + break; + trash_init(m, q == &nd_mbufq ? MSIZE : MCLBYTES, flags); + store[i] = m; + } + return (i); +} + +static void +nd_buf_release(void *arg, void **store, int count) +{ + struct mbufq *q; + struct mbuf *m; + int i; + + q = arg; + + for (i = 0; i < count; i++) { + m = store[i]; + (void)mbufq_enqueue(q, m); + } +} + +static int +nd_pack_import(void *arg, void **store, int count, int domain __unused, + int flags __unused) +{ + struct mbuf *m; + void *clust; + int i; + + for (i = 0; i < count; i++) { + m = m_get(MT_DATA, M_NOWAIT); + if (m == NULL) + break; + clust = uma_zalloc(nd_zone_clust, M_NOWAIT); + if (clust == NULL) { + m_free(m); + break; + } + + mb_ctor_clust(clust, MCLBYTES, m, M_NOWAIT); + store[i] = m; + } + return (i); +} + +static void +nd_pack_release(void *arg, void **store, int count) +{ + struct mbuf *m; + void *clust; + int i; + + for (i = 0; i < count; i++) { + m = store[i]; + clust = m->m_ext.ext_buf; + uma_zfree(nd_zone_clust, clust); + uma_zfree(nd_zone_mbuf, m); + } +} + /* + * Initialize zones used to cache netdump packet buffers. At panic-time, we + * swap out the regular mbuf/cluster zones with these, ensuring that drivers and + * the protocol code can allocate buffers from a preallocated pool, rather than + * relying on memory allocation to succeed after a panic. + * + * We keep mbufs and clusters in a pair of mbuf queues. In particular, for the + * purpose of caching clusters, we treat them as mbufs. + */ +void +netdump_mbuf_init(int nmbuf, int nclust) +{ + struct mbuf *m; + void *item; + + mbufq_init(&nd_mbufq, INT_MAX); + mbufq_init(&nd_clustq, INT_MAX); + + nd_zone_mbuf = uma_zcache_create("netdump_" MBUF_MEM_NAME, + MSIZE, mb_ctor_mbuf, mb_dtor_mbuf, +#ifdef INVARIANTS + trash_init, trash_fini, +#else + NULL, NULL, +#endif + nd_buf_import, nd_buf_release, + &nd_mbufq, UMA_ZONE_NOBUCKET); + + nd_zone_clust = uma_zcache_create("netdump_" MBUF_CLUSTER_MEM_NAME, + MCLBYTES, mb_ctor_clust, +#ifdef INVARIANTS + trash_dtor, trash_init, trash_fini, +#else + NULL, NULL, NULL, +#endif + nd_buf_import, nd_buf_release, + &nd_clustq, UMA_ZONE_NOBUCKET); + + nd_zone_pack = uma_zcache_create("netdump_" MBUF_PACKET_MEM_NAME, + MCLBYTES, mb_ctor_pack, mb_dtor_pack, NULL, NULL, + nd_pack_import, nd_pack_release, + NULL, UMA_ZONE_NOBUCKET); + + while (nmbuf-- > 0) { + m = m_get(MT_DATA, M_WAITOK); + uma_zfree(nd_zone_mbuf, m); + } + while (nclust-- > 0) { + item = uma_zalloc(zone_clust, M_WAITOK); + uma_zfree(nd_zone_clust, item); + } +} + +/* + * Free preallocated mbufs and clusters. + */ +void +netdump_mbuf_drain(void) +{ + struct mbuf *m; + void *item; + + while ((m = mbufq_dequeue(&nd_mbufq)) != NULL) + m_free(m); + while ((item = mbufq_dequeue(&nd_clustq)) != NULL) + uma_zfree(zone_clust, item); + + uma_zdestroy(nd_zone_mbuf); + uma_zdestroy(nd_zone_clust); + uma_zdestroy(nd_zone_pack); +} + +/* + * Callback invoked immediately prior to starting a netdump. + */ +void +netdump_mbuf_dump(void) +{ + + /* + * All cluster zones return 2KB buffers. It's up to the per-driver + * netdump hooks to ensure that no attempts are made to use larger + * clusters. netdump ACKs fit easily within an mbuf, let alone a 2KB + * cluster, so there's no need to preallocate larger buffers. + */ + printf("netdump: overwriting mbuf zone pointers\n"); + zone_mbuf = nd_zone_mbuf; + zone_clust = nd_zone_clust; + zone_pack = nd_zone_pack; + zone_jumbop = nd_zone_clust; + zone_jumbo9 = nd_zone_clust; + zone_jumbo16 = nd_zone_clust; +} +#endif /* NETDUMP */ + +/* * UMA backend page allocator for the jumbo frame zones. * * Allocates kernel virtual memory that is backed by contiguous physical @@ -681,19 +864,20 @@ mb_free_ext(struct mbuf *m) case EXT_NET_DRV: case EXT_MOD_TYPE: case EXT_DISPOSABLE: + case EXT_NETDUMP: KASSERT(mref->m_ext.ext_free != NULL, - ("%s: ext_free not set", __func__)); + ("%s: ext_free not set", __func__)); mref->m_ext.ext_free(mref); uma_zfree(zone_mbuf, mref); break; case EXT_EXTREF: KASSERT(m->m_ext.ext_free != NULL, - ("%s: ext_free not set", __func__)); + ("%s: ext_free not set", __func__)); m->m_ext.ext_free(m); break; default: KASSERT(m->m_ext.ext_type == 0, - ("%s: unknown ext_type", __func__)); + ("%s: unknown ext_type", __func__)); } } Modified: user/markj/netdump/sys/kern/kern_shutdown.c ============================================================================== --- user/markj/netdump/sys/kern/kern_shutdown.c Mon Jan 15 00:47:33 2018 (r327981) +++ user/markj/netdump/sys/kern/kern_shutdown.c Mon Jan 15 00:50:08 2018 (r327982) @@ -1101,7 +1101,7 @@ static int dump_check_bounds(struct dumperinfo *di, off_t offset, size_t length) { - if (length != 0 && (offset < di->mediaoffset || + if (di->mediasize > 0 && length != 0 && (offset < di->mediaoffset || offset - di->mediaoffset + length > di->mediasize)) { printf("Attempt to write outside dump device boundaries.\n" "offset(%jd), mediaoffset(%jd), length(%ju), mediasize(%jd).\n", @@ -1274,9 +1274,10 @@ dump_start(struct dumperinfo *di, struct kerneldumphea { uint64_t dumpextent; uint32_t keysize; + int error; #ifdef EKCD - int error = kerneldumpcrypto_init(di->kdcrypto); + error = kerneldumpcrypto_init(di->kdcrypto); if (error != 0) return (error); keysize = kerneldumpcrypto_dumpkeysize(di->kdcrypto); @@ -1284,8 +1285,15 @@ dump_start(struct dumperinfo *di, struct kerneldumphea keysize = 0; #endif + if (di->dumper_init != NULL) { + error = di->dumper_init(di->priv); + if (error != 0) + return (error); + } + dumpextent = dtoh64(kdh->dumpextent); - if (di->mediasize < SIZEOF_METADATA + dumpextent + 2 * di->blocksize + + if (di->mediasize > 0 && + di->mediasize < SIZEOF_METADATA + dumpextent + 2 * di->blocksize + keysize) { if (di->kdcomp != NULL) { /* @@ -1304,8 +1312,12 @@ dump_start(struct dumperinfo *di, struct kerneldumphea } /* The offset at which to begin writing the dump. */ - di->dumpoff = di->mediaoffset + di->mediasize - di->blocksize - - dumpextent; + /* XXXMJ ugly */ + if (di->mediasize == 0) + di->dumpoff = di->blocksize; + else + di->dumpoff = di->mediaoffset + di->mediasize - di->blocksize - + dumpextent; return (0); } @@ -1413,10 +1425,14 @@ dump_finish(struct dumperinfo *di, struct kerneldumphe /* * Write kerneldump headers at the beginning and end of the dump extent. * Write the key after the leading header. + * XXXMJ quite ugly */ - error = dump_write_header(di, kdh, - di->mediaoffset + di->mediasize - 2 * di->blocksize - extent - - keysize); + if (di->mediasize == 0) + error = dump_write_header(di, kdh, 0); + else + error = dump_write_header(di, kdh, + di->mediaoffset + di->mediasize - 2 * di->blocksize - extent - + keysize); if (error != 0) return (error); @@ -1427,10 +1443,15 @@ dump_finish(struct dumperinfo *di, struct kerneldumphe return (error); #endif - error = dump_write_header(di, kdh, - di->mediaoffset + di->mediasize - di->blocksize); - if (error != 0) - return (error); + /* XXX comment */ + if (di->dumper_fini != NULL) + di->dumper_fini(di->priv); + else { + error = dump_write_header(di, kdh, + di->mediaoffset + di->mediasize - di->blocksize); + if (error != 0) + return (error); + } (void)dump_write(di, NULL, 0, 0, 0); return (0); Modified: user/markj/netdump/sys/net/if_var.h ============================================================================== --- user/markj/netdump/sys/net/if_var.h Mon Jan 15 00:47:33 2018 (r327981) +++ user/markj/netdump/sys/net/if_var.h Mon Jan 15 00:50:08 2018 (r327982) @@ -70,6 +70,7 @@ struct route; /* if_output */ struct vnet; struct ifmedia; struct netmap_adapter; +struct netdump_methods; #ifdef _KERNEL #include /* ifqueue only? */ @@ -364,6 +365,11 @@ struct ifnet { if_snd_tag_modify_t *if_snd_tag_modify; if_snd_tag_query_t *if_snd_tag_query; if_snd_tag_free_t *if_snd_tag_free; + + /* + * Netdump hooks to be called while dumping. + */ + struct netdump_methods *if_netdump_methods; /* * Spare fields to be added before branching a stable branch, so Added: user/markj/netdump/sys/netinet/netdump/netdump.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/markj/netdump/sys/netinet/netdump/netdump.h Mon Jan 15 00:50:08 2018 (r327982) @@ -0,0 +1,122 @@ +/*- + * Copyright (c) 2005-2014 Sandvine Incorporated + * Copyright (c) 2000 Darrell Anderson + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * $FreeBSD$ + */ + +#ifndef _NETINET_NETDUMP_H_ +#define _NETINET_NETDUMP_H_ + +#include +#include + +#include +#include + +#define NETDUMP_PORT 20023 /* Server udp port number for data. */ +#define NETDUMP_ACKPORT 20024 /* Client udp port number for acks. */ + +#define NETDUMP_HERALD 1 /* Broadcast before starting a dump. */ +#define NETDUMP_FINISHED 2 /* Send after finishing a dump. */ +#define NETDUMP_VMCORE 3 /* Contains dump data. */ +#define NETDUMP_KDH 4 /* Contains kernel dump header. */ + +#define NETDUMP_DATASIZE 4096 /* Arbitrary packet size limit. */ + +struct netdump_msg_hdr { + uint32_t mh_type; /* Netdump message type. */ + uint32_t mh_seqno; /* Match acks with msgs. */ + uint64_t mh_offset; /* vmcore offset (bytes). */ + uint32_t mh_len; /* Attached data (bytes). */ + uint32_t mh__pad; +} __packed; + +struct netdump_ack { + uint32_t na_seqno; /* Match acks with msgs. */ +} __packed; + +struct netdump_conf { + char ndc_iface[IFNAMSIZ]; + struct in_addr ndc_server; + struct in_addr ndc_client; + struct in_addr ndc_gateway; +}; + +#define _PATH_NETDUMP "/dev/netdump" + +#define NETDUMPGCONF _IOR('n', 1, struct netdump_conf) +#define NETDUMPSCONF _IOW('n', 2, struct netdump_conf) + +#ifdef _KERNEL +#ifdef NETDUMP + +#define NETDUMP_MAX_IN_FLIGHT 64 + +enum netdump_ev { + NETDUMP_START, + NETDUMP_END, +}; + +struct ifnet; +struct mbuf; + +typedef void netdump_init_t(struct ifnet *, int *nmbufp, int *nclustp); +typedef void netdump_event_t(struct ifnet *, enum netdump_ev); +typedef int netdump_transmit_t(struct ifnet *, struct mbuf *); +typedef int netdump_poll_t(struct ifnet *, int); + +struct netdump_methods { + netdump_init_t *nd_init; + netdump_event_t *nd_event; + netdump_transmit_t *nd_transmit; + netdump_poll_t *nd_poll; +}; + +#define NETDUMP_DEFINE(driver) \ + static netdump_init_t driver##_netdump_init; \ + static netdump_event_t driver##_netdump_event; \ + static netdump_transmit_t driver##_netdump_transmit; \ + static netdump_poll_t driver##_netdump_poll; \ + \ + static struct netdump_methods driver##_netdump_methods = { \ + .nd_init = driver##_netdump_init, \ + .nd_event = driver##_netdump_event, \ + .nd_transmit = driver##_netdump_transmit, \ + .nd_poll = driver##_netdump_poll, \ + } + +#define NETDUMP_SET(ifp, driver) \ + (ifp)->if_netdump_methods = &driver##_netdump_methods + +#else /* !NETDUMP */ + +#define NETDUMP_DEFINE(driver) +#define NETDUMP_SET(ifp, driver) + +#endif /* NETDUMP */ +#endif /* _KERNEL */ + +#endif /* _NETINET_NETDUMP_H_ */ Added: user/markj/netdump/sys/netinet/netdump/netdump_client.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/markj/netdump/sys/netinet/netdump/netdump_client.c Mon Jan 15 00:50:08 2018 (r327982) @@ -0,0 +1,1244 @@ +/*- + * Copyright (c) 2005-2014 Sandvine Incorporated. All rights reserved. + * Copyright (c) 2000 Darrell Anderson + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +/* + * netdump_client.c + * FreeBSD subsystem supporting netdump network dumps. + * A dedicated server must be running to accept client dumps. + */ + +#include +__FBSDID("$FreeBSD$"); + +#include "opt_netdump.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#ifdef NETDUMP_DEBUG +#define NETDDEBUG(f, ...) \ + printf(("%s: " f), __func__, ## __VA_ARGS__) +#define NETDDEBUG_IF(i, f, ...) \ + if_printf((i), ("%s: " f), __func__, ## __VA_ARGS__) +#if NETDUMP_DEBUG > 1 +#define NETDDEBUGV(f, ...) \ + printf(("%s: " f), __func__, ## __VA_ARGS__) +#define NETDDEBUGV_IF(i, f, ...) \ + if_printf((i), ("%s: " f), __func__, ## __VA_ARGS__) +#else +#define NETDDEBUGV(f, ...) +#define NETDDEBUGV_IF(i, f, ...) +#endif +#else +#define NETDDEBUG(f, ...) +#define NETDDEBUG_IF(i, f, ...) +#define NETDDEBUGV(f, ...) +#define NETDDEBUGV_IF(i, f, ...) +#endif + +/* Defined in kern_mbuf.c. */ +void netdump_mbuf_init(int nmbuf, int nclust); +void netdump_mbuf_drain(void); +void netdump_mbuf_dump(void); + +static int netdump_arp_gw(void); +static void netdump_cleanup(void); +static int netdump_configure(struct netdump_conf *); +static int netdump_dumper(void *priv __unused, void *virtual, + vm_offset_t physical __unused, off_t offset, size_t length); +static int netdump_ether_output(struct mbuf *m, struct ifnet *ifp, + struct ether_addr dst, u_short etype); +static void netdump_fini(void *priv __unused); +static void netdump_handle_arp(struct mbuf **mb); +static void netdump_handle_ip(struct mbuf **mb); +static int netdump_init(void *priv __unused); +static int netdump_ioctl(struct cdev *dev __unused, u_long cmd, + caddr_t addr, int flags __unused, struct thread *td); +static int netdump_modevent(module_t mod, int type, void *priv); +static void netdump_network_poll(void); +static void netdump_pkt_in(struct ifnet *ifp, struct mbuf *m); +static int netdump_send(uint32_t type, off_t offset, unsigned char *data, + uint32_t datalen); +static int netdump_send_arp(in_addr_t dst); +static int netdump_udp_output(struct mbuf *m); + +/* Must be at least as big as the chunks dumpsys() gives us. */ +static unsigned char nd_buf[MAXDUMPPGS * PAGE_SIZE]; +static uint32_t nd_seqno; +static int dump_failed, have_gw_mac; +static void (*drv_if_input)(struct ifnet *, struct mbuf *); +static int restore_gw_addr; + +static uint64_t rcvd_acks; +CTASSERT(sizeof(rcvd_acks) * NBBY == NETDUMP_MAX_IN_FLIGHT); + +/* + * Times to poll the NIC (0.5ms each poll) before assuming packetloss + * occurred (default to 1s). + */ +static int nd_polls = 2000; + +/* Times to retransmit lost packets. */ +static int nd_retries = 10; + +/* Number of ARP retries. */ +static int nd_arp_retries = 3; + +/* Configuration parameters. */ +static struct netdump_conf nd_conf; +#define nd_server nd_conf.ndc_server +#define nd_client nd_conf.ndc_client +#define nd_gateway nd_conf.ndc_gateway + +/* General dynamic settings. */ +static struct ether_addr nd_gw_mac; +static struct ifnet *nd_ifp; +static uint16_t nd_server_port = NETDUMP_PORT; + +static SYSCTL_NODE(_net, OID_AUTO, netdump, CTLFLAG_RD, NULL, + "netdump parameters"); + +static int nd_enabled; +SYSCTL_INT(_net_netdump, OID_AUTO, enabled, CTLFLAG_RD, + &nd_enabled, 0, + "netdump configuration status"); +static char nd_path[MAXPATHLEN]; +SYSCTL_STRING(_net_netdump, OID_AUTO, path, CTLFLAG_RW, + nd_path, sizeof(nd_path), + "Server path for output files"); + +/* + * Checks for netdump support on a network interface + * + * Parameters: + * ifp The network interface that is being tested for support + * + * Returns: + * int 1 if the interface is supported, 0 if not + */ +static bool +netdump_supported_nic(struct ifnet *ifp) +{ + + return (ifp->if_netdump_methods != NULL); +} + +/*- + * Network specific primitives. + * Following down the code they are divided ordered as: + * - Packet buffer primitives + * - Output primitives + * - Input primitives + * - Polling primitives + */ + +/* + * Handles creation of the ethernet header, then places outgoing packets into + * the tx buffer for the NIC + * + * Parameters: + * m The mbuf containing the packet to be sent (will be freed by + * this function or the NIC driver) + * ifp The interface to send on + * dst The destination ethernet address (source address will be looked + * up using ifp) + * etype The ETHERTYPE_* value for the protocol that is being sent + * + * Returns: + * int see errno.h, 0 for success + */ +static int +netdump_ether_output(struct mbuf *m, struct ifnet *ifp, struct ether_addr dst, + u_short etype) +{ + struct ether_header *eh; + + if (((ifp->if_flags & (IFF_MONITOR | IFF_UP)) != IFF_UP) || + (ifp->if_drv_flags & IFF_DRV_RUNNING) != IFF_DRV_RUNNING) { + if_printf(ifp, "netdump_ether_output: interface isn't up\n"); + m_freem(m); + return (ENETDOWN); + } + + /* Fill in the ethernet header. */ + M_PREPEND(m, ETHER_HDR_LEN, M_NOWAIT); + if (m == NULL) { + printf("%s: out of mbufs\n", __func__); + return (ENOBUFS); + } + eh = mtod(m, struct ether_header *); + memcpy(eh->ether_shost, IF_LLADDR(ifp), ETHER_ADDR_LEN); + memcpy(eh->ether_dhost, dst.octet, ETHER_ADDR_LEN); + eh->ether_type = htons(etype); + return ((ifp->if_netdump_methods->nd_transmit)(ifp, m)); +} + +/* + * Unreliable transmission of an mbuf chain to the netdump server + * Note: can't handle fragmentation; fails if the packet is larger than + * nd_ifp->if_mtu after adding the UDP/IP headers + * + * Parameters: + * m mbuf chain + * + * Returns: + * int see errno.h, 0 for success + */ +static int +netdump_udp_output(struct mbuf *m) +{ + struct udpiphdr *ui; + struct ip *ip; + + MPASS(nd_ifp != NULL); + + M_PREPEND(m, sizeof(struct udpiphdr), M_NOWAIT); + if (m == NULL) { + printf("%s: out of mbufs\n", __func__); + return (ENOBUFS); + } + + if (m->m_pkthdr.len > nd_ifp->if_mtu) { + printf("netdump_udp_output: Packet is too big: %d > MTU %u\n", + m->m_pkthdr.len, nd_ifp->if_mtu); + m_freem(m); + return (ENOBUFS); + } + + ui = mtod(m, struct udpiphdr *); + bzero(ui->ui_x1, sizeof(ui->ui_x1)); + ui->ui_pr = IPPROTO_UDP; + ui->ui_len = htons(m->m_pkthdr.len - sizeof(struct ip)); + ui->ui_ulen = ui->ui_len; + ui->ui_src = nd_client; + ui->ui_dst = nd_server; + /* Use this src port so that the server can connect() the socket */ + ui->ui_sport = htons(NETDUMP_ACKPORT); + ui->ui_dport = htons(nd_server_port); + ui->ui_sum = 0; + if ((ui->ui_sum = in_cksum(m, m->m_pkthdr.len)) == 0) + ui->ui_sum = 0xffff; + + ip = mtod(m, struct ip *); + ip->ip_v = IPVERSION; + ip->ip_hl = sizeof(struct ip) >> 2; + ip->ip_tos = 0; + ip->ip_len = htons(m->m_pkthdr.len); + ip->ip_id = 0; + ip->ip_off = htons(IP_DF); + ip->ip_ttl = 255; + ip->ip_sum = 0; + ip->ip_sum = in_cksum(m, sizeof(struct ip)); + + return (netdump_ether_output(m, nd_ifp, nd_gw_mac, ETHERTYPE_IP)); +} + +/* + * Builds and sends a single ARP request to locate the server + * + * Return value: + * 0 on success + * errno on error + */ +static int +netdump_send_arp(in_addr_t dst) +{ + struct ether_addr bcast; + struct mbuf *m; + struct arphdr *ah; + int pktlen; + + MPASS(nd_ifp != NULL); + + /* Fill-up a broadcast address. */ + memset(&bcast, 0xFF, ETHER_ADDR_LEN); + m = m_gethdr(M_NOWAIT, MT_DATA); + if (m == NULL) { + printf("netdump_send_arp: Out of mbufs\n"); + return (ENOBUFS); + } + pktlen = arphdr_len2(ETHER_ADDR_LEN, sizeof(struct in_addr)); + m->m_len = pktlen; + m->m_pkthdr.len = pktlen; + MH_ALIGN(m, pktlen); + ah = mtod(m, struct arphdr *); + ah->ar_hrd = htons(ARPHRD_ETHER); + ah->ar_pro = htons(ETHERTYPE_IP); + ah->ar_hln = ETHER_ADDR_LEN; + ah->ar_pln = sizeof(struct in_addr); + ah->ar_op = htons(ARPOP_REQUEST); + memcpy(ar_sha(ah), IF_LLADDR(nd_ifp), ETHER_ADDR_LEN); + ((struct in_addr *)ar_spa(ah))->s_addr = nd_client.s_addr; + bzero(ar_tha(ah), ETHER_ADDR_LEN); + ((struct in_addr *)ar_tpa(ah))->s_addr = dst; + return (netdump_ether_output(m, nd_ifp, bcast, ETHERTYPE_ARP)); +} + +/* + * Sends ARP requests to locate the server and waits for a response. + * We first try to ARP the server itself, and fall back to the provided + * gateway if the server appears to be off-link. + * + * Return value: + * 0 on success + * errno on error + */ +static int +netdump_arp_gw(void) +{ + in_addr_t dst; + int err, polls, retries; + + dst = nd_server.s_addr; +restart: + for (retries = 0; retries < nd_arp_retries && have_gw_mac == 0; + retries++) { + err = netdump_send_arp(dst); + if (err != 0) + return (err); + for (polls = 0; polls < nd_polls && have_gw_mac == 0; polls++) { + netdump_network_poll(); + DELAY(500); + } + if (have_gw_mac == 0) + printf("(ARP retry)"); + } + if (have_gw_mac != 0) + return (0); + if (dst == nd_server.s_addr && nd_server.s_addr != nd_gateway.s_addr) { + printf("Failed to ARP server, trying to reach gateway...\n"); + dst = nd_gateway.s_addr; + goto restart; + } + + printf("\nARP timed out.\n"); + return (ETIMEDOUT); +} + +/* + * Dummy free function for EXT_NETDUMP clusters. + */ +static void +netdump_mbuf_free(struct mbuf *m __unused) +{ +} + +/* + * Construct and reliably send a netdump packet. May fail from a resource + * shortage or extreme number of unacknowledged retransmissions. Wait for + * an acknowledgement before returning. Splits packets into chunks small + * enough to be sent without fragmentation (looks up the interface MTU) + * + * Parameters: + * type netdump packet type (HERALD, FINISHED, or VMCORE) + * offset vmcore data offset (bytes) + * data vmcore data + * datalen vmcore data size (bytes) + * + * Returns: + * int see errno.h, 0 for success + */ +static int +netdump_send(uint32_t type, off_t offset, unsigned char *data, uint32_t datalen) +{ + struct netdump_msg_hdr *nd_msg_hdr; + struct mbuf *m, *m2; + uint64_t want_acks; + uint32_t i, pktlen, sent_so_far; + int retries, polls, error; + + want_acks = 0; + rcvd_acks = 0; + retries = 0; + + MPASS(nd_ifp != NULL); + +retransmit: + /* Chunks can be too big to fit in packets. */ + for (i = sent_so_far = 0; sent_so_far < datalen || + (i == 0 && datalen == 0); i++) { + pktlen = datalen - sent_so_far; + + /* First bound: the packet structure. */ + pktlen = min(pktlen, NETDUMP_DATASIZE); + + /* Second bound: the interface MTU (assume no IP options). */ + pktlen = min(pktlen, nd_ifp->if_mtu - sizeof(struct udpiphdr) - + sizeof(struct netdump_msg_hdr)); + + /* + * Check if it is retransmitting and this has been ACKed + * already. + */ + if ((rcvd_acks & (1 << i)) != 0) { + sent_so_far += pktlen; + continue; + } + + /* + * Get and fill a header mbuf, then chain data as an extended + * mbuf. + */ + m = m_gethdr(M_NOWAIT, MT_DATA); + if (m == NULL) { + printf("netdump_send: Out of mbufs\n"); + return (ENOBUFS); + } + m->m_len = sizeof(struct netdump_msg_hdr); + m->m_pkthdr.len = sizeof(struct netdump_msg_hdr); + MH_ALIGN(m, sizeof(struct netdump_msg_hdr)); + nd_msg_hdr = mtod(m, struct netdump_msg_hdr *); + nd_msg_hdr->mh_seqno = htonl(nd_seqno + i); + nd_msg_hdr->mh_type = htonl(type); + nd_msg_hdr->mh_offset = htobe64(offset + sent_so_far); + nd_msg_hdr->mh_len = htonl(pktlen); + nd_msg_hdr->mh__pad = 0; + + if (pktlen != 0) { + m2 = m_get(M_NOWAIT, MT_DATA); + if (m2 == NULL) { + m_freem(m); + printf("netdump_send: Out of mbufs\n"); + return (ENOBUFS); + } + MEXTADD(m2, data + sent_so_far, pktlen, + netdump_mbuf_free, NULL, NULL, 0, EXT_NETDUMP); + m2->m_len = pktlen; + + m_cat(m, m2); + m->m_pkthdr.len += pktlen; + } + error = netdump_udp_output(m); + if (error != 0) + return (error); + + /* Note that we're waiting for this packet in the bitfield. */ + want_acks |= (1 << i); + sent_so_far += pktlen; + } + if (i >= NETDUMP_MAX_IN_FLIGHT) + printf("Warning: Sent more than %d packets (%d). " + "Acknowledgements will fail unless the size of " + "rcvd_acks/want_acks is increased.\n", *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@freebsd.org Mon Jan 15 00:51:30 2018 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8D83AE6EAB9 for ; Mon, 15 Jan 2018 00:51:30 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 51EEB75E0E; Mon, 15 Jan 2018 00:51:29 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1]) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id w0F0pLOG052156; Sun, 14 Jan 2018 16:51:21 -0800 (PST) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: (from freebsd@localhost) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id w0F0pL5c052155; Sun, 14 Jan 2018 16:51:21 -0800 (PST) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201801150051.w0F0pL5c052155@pdx.rh.CN85.dnsmgr.net> Subject: Re: svn commit: r327980 - user/markj/netdump In-Reply-To: <201801150029.w0F0THX8034785@repo.freebsd.org> To: Mark Johnston Date: Sun, 14 Jan 2018 16:51:21 -0800 (PST) CC: src-committers@freebsd.org, svn-src-user@freebsd.org Reply-To: rgrimes@freebsd.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Jan 2018 00:51:30 -0000 > Author: markj > Date: Mon Jan 15 00:29:17 2018 > New Revision: 327980 > URL: https://svnweb.freebsd.org/changeset/base/327980 > > Log: > Create a branch for integrating changes needed for netdump. > > netdump is a facility that allows the kernel to transmit a kernel dump > over UDP to a remote server, instead of saving it to local media. This > is useful for diskless systems and for centralized collection of kernel > dumps in a lab environment. YEA! But far more than a lab it is VERY useful in large memory configuration server farms where tossing 400MB+ of disk on every machine for a dedicated swap partition because you might need to capture a dump is just not a good option. > > This implementation will provide a kernel netdump client, including > hooks for some NIC drivers, and support for configuration with > dumpon(8). Some extensions to the mbuf allocator make it possible to > allocate mbufs/clusters after a panic using a pre-allocated pool; > this is done without imposing any runtime overhead in the regular > allocator and without having to modify driver tx/rx code. The netdump > server component is available in the ports tree as ftp/netdumpd. > > Added: > - copied from r327979, head/ > Directory Properties: > user/markj/netdump/ (props changed) Thanks for finding another round tuit so you could finish this work! -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-user@freebsd.org Mon Jan 15 00:53:42 2018 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5ABE6E6EC98 for ; Mon, 15 Jan 2018 00:53:42 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 1D61376141; Mon, 15 Jan 2018 00:53:42 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 5DFEE15B8; Mon, 15 Jan 2018 00:53:41 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w0F0rfkr046906; Mon, 15 Jan 2018 00:53:41 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w0F0rfnn046905; Mon, 15 Jan 2018 00:53:41 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201801150053.w0F0rfnn046905@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Mon, 15 Jan 2018 00:53:41 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r327983 - user/markj/netdump/sbin/dumpon X-SVN-Group: user X-SVN-Commit-Author: markj X-SVN-Commit-Paths: user/markj/netdump/sbin/dumpon X-SVN-Commit-Revision: 327983 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Jan 2018 00:53:42 -0000 Author: markj Date: Mon Jan 15 00:53:40 2018 New Revision: 327983 URL: https://svnweb.freebsd.org/changeset/base/327983 Log: Add dumpon(8) support for netdump client configuration. In general we need four configuration parameters: client/server/gateway addresses, and the name of the interface to be used. dumpon is modified to accept (and in some cases, infer) these parameters and uses ioctls on /dev/netdump to pass them to the client code. This commit is lacking corresponding man page updates. Modified: user/markj/netdump/sbin/dumpon/dumpon.c Modified: user/markj/netdump/sbin/dumpon/dumpon.c ============================================================================== --- user/markj/netdump/sbin/dumpon/dumpon.c Mon Jan 15 00:50:08 2018 (r327982) +++ user/markj/netdump/sbin/dumpon/dumpon.c Mon Jan 15 00:53:40 2018 (r327983) @@ -46,12 +46,15 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include #include #include +#include +#include #include #include #include @@ -61,6 +64,15 @@ __FBSDID("$FreeBSD$"); #include #include +#include + +#include +#include +#include + +#include +#include + #ifdef HAVE_CRYPTO #include #include @@ -73,12 +85,104 @@ static void usage(void) { fprintf(stderr, "%s\n%s\n%s\n", - "usage: dumpon [-v] [-k public_key_file] [-z] special_file", - " dumpon [-v] off", - " dumpon [-v] -l"); + "usage: dumpon [-v] [-k public_key_file] [-z] special_file", + "usage: dumpon [-v] [-g |default] -s -c \n" + " dumpon [-v] off", + " dumpon [-v] -l"); exit(EX_USAGE); } +/* + * Look for a default route on the specified interface. + */ +static char * +find_gateway(const char *ifname) +{ + struct ifaddrs *ifa, *ifap; + struct rt_msghdr *rtm; + struct sockaddr *sa; + struct sockaddr_dl *sdl; + struct sockaddr_in *dst, *mask, *gw; + char *buf, *next, *ret; + size_t sz; + int error, i, ifindex, mib[7]; + + ret = NULL; + + /* First look up the interface index. */ + if (getifaddrs(&ifap) != 0) + err(EX_OSERR, "getifaddrs"); + for (ifa = ifap; ifa != NULL; ifa = ifa->ifa_next) { + if (ifa->ifa_addr->sa_family != AF_LINK) + continue; + if (strcmp(ifa->ifa_name, ifname) == 0) { + sdl = (struct sockaddr_dl *)(void *)ifa->ifa_addr; + ifindex = sdl->sdl_index; + break; + } + } + if (ifa == NULL) + errx(1, "couldn't find interface index for '%s'", ifname); + freeifaddrs(ifap); + + /* Now get the IPv4 routing table. */ + mib[0] = CTL_NET; + mib[1] = PF_ROUTE; + mib[2] = 0; + mib[3] = AF_INET; + mib[4] = NET_RT_DUMP; + mib[5] = 0; + mib[6] = -1; /* FIB */ + + for (;;) { + if (sysctl(mib, nitems(mib), NULL, &sz, NULL, 0) != 0) + err(EX_OSERR, "sysctl(NET_RT_DUMP)"); + buf = malloc(sz); + error = sysctl(mib, nitems(mib), buf, &sz, NULL, 0); + if (error == 0) + break; + if (errno != ENOMEM) + err(EX_OSERR, "sysctl(NET_RT_DUMP)"); + free(buf); + } + + for (next = buf; next < buf + sz; next += rtm->rtm_msglen) { + rtm = (struct rt_msghdr *)(void *)next; + if (rtm->rtm_version != RTM_VERSION) + continue; + if ((rtm->rtm_flags & RTF_GATEWAY) == 0 || + rtm->rtm_index != ifindex) + continue; + + dst = gw = mask = NULL; + sa = (struct sockaddr *)(rtm + 1); + for (i = 0; i < RTAX_MAX; i++) { + if ((rtm->rtm_addrs & (1 << i)) != 0) { + switch (i) { + case RTAX_DST: + dst = (void *)sa; + break; + case RTAX_GATEWAY: + gw = (void *)sa; + break; + case RTAX_NETMASK: + mask = (void *)sa; + break; + } + } + sa = (struct sockaddr *)((char *)sa + SA_SIZE(sa)); + } + + if (dst->sin_addr.s_addr == INADDR_ANY && + mask->sin_addr.s_addr == 0) { + ret = inet_ntoa(gw->sin_addr); + break; + } + } + free(buf); + return (ret); +} + static void check_size(int fd, const char *fn) { @@ -162,8 +266,10 @@ static void listdumpdev(void) { char dumpdev[PATH_MAX]; + struct netdump_conf ndconf; size_t len; const char *sysctlname = "kern.shutdown.dumpdevname"; + int fd; len = sizeof(dumpdev); if (sysctlbyname(sysctlname, &dumpdev, &len, NULL, 0) != 0) { @@ -174,37 +280,63 @@ listdumpdev(void) err(EX_OSERR, "Sysctl get '%s'\n", sysctlname); } } - if (verbose) { - printf("kernel dumps on "); + if (strlen(dumpdev) == 0) + (void)strlcpy(dumpdev, _PATH_DEVNULL, sizeof(dumpdev)); + + if (verbose) + printf("kernel dumps on %s\n", dumpdev); + + /* If netdump is enabled, print the configuration parameters. */ + fd = open(_PATH_NETDUMP, O_RDONLY); + if (fd < 0) { + if (errno != ENOENT) + err(EX_OSERR, "opening %s", _PATH_NETDUMP); + return; } - if (strlen(dumpdev) == 0) { - printf("%s\n", _PATH_DEVNULL); - } else { - printf("%s\n", dumpdev); + if (ioctl(fd, NETDUMPGCONF, &ndconf) != 0) { + if (errno != ENXIO) + err(EX_OSERR, "ioctl(NETDUMPGCONF)"); + (void)close(fd); + return; } + + printf("server address: %s\n", inet_ntoa(ndconf.ndc_server)); + printf("client address: %s\n", inet_ntoa(ndconf.ndc_client)); + printf("gateway address: %s\n", inet_ntoa(ndconf.ndc_gateway)); + (void)close(fd); } int main(int argc, char *argv[]) { + struct netdump_conf ndconf; struct diocskerneldump_arg kda; - const char *pubkeyfile; - int ch; - int i, fd; - int do_listdumpdev = 0; + struct addrinfo hints, *res; + const char *dev, *pubkeyfile, *server, *client, *gateway; + int ch, do_listdumpdev = 0, error, fd, i; bool enable, gzip; gzip = false; pubkeyfile = NULL; + server = client = gateway = NULL; - while ((ch = getopt(argc, argv, "k:lvz")) != -1) + while ((ch = getopt(argc, argv, "c:g:k:ls:vz")) != -1) switch((char)ch) { + case 'c': + client = optarg; + break; + case 'g': + gateway = optarg; + break; case 'k': pubkeyfile = optarg; break; case 'l': do_listdumpdev = 1; break; + case 's': + server = optarg; + break; case 'v': verbose = 1; break; @@ -226,7 +358,14 @@ main(int argc, char *argv[]) if (argc != 1) usage(); - enable = (strcmp(argv[0], "off") != 0); + if (server != NULL && client != NULL) + dev = _PATH_NETDUMP; + else if (server == NULL && client == NULL && argc > 0) { + dev = argv[0]; + enable = strcmp(dev, "off") != 0; + } else + usage(); + #ifndef HAVE_CRYPTO if (pubkeyfile != NULL) { enable = false; @@ -234,7 +373,43 @@ main(int argc, char *argv[]) } #endif - if (enable) { + if (server != NULL) { + memset(&hints, 0, sizeof(hints)); + hints.ai_family = AF_INET; + hints.ai_protocol = IPPROTO_UDP; + res = NULL; + error = getaddrinfo(server, NULL, &hints, &res); + if (error != 0) + err(1, "%s", gai_strerror(error)); + if (res == NULL) + errx(1, "failed to resolve '%s'", server); + server = inet_ntoa( + ((struct sockaddr_in *)(void *)res->ai_addr)->sin_addr); + freeaddrinfo(res); + + if (strlcpy(ndconf.ndc_iface, argv[0], + sizeof(ndconf.ndc_iface)) >= sizeof(ndconf.ndc_iface)) + errx(EX_USAGE, "invalid interface name '%s'", argv[0]); + if (inet_aton(server, &ndconf.ndc_server) == 0) + errx(EX_USAGE, "invalid server address '%s'", server); + if (inet_aton(client, &ndconf.ndc_client) == 0) + errx(EX_USAGE, "invalid client address '%s'", client); + + if (gateway == NULL) + gateway = server; + else if (strcmp(gateway, "default") == 0 && + (gateway = find_gateway(argv[0])) == NULL) + errx(EX_NOHOST, + "failed to look up next-hop router for %s", server); + if (inet_aton(gateway, &ndconf.ndc_gateway) == 0) + errx(EX_USAGE, "invalid gateway address '%s'", gateway); + + fd = open(dev, O_RDONLY); + if (fd < 0) + err(EX_OSFILE, "%s", dev); + if (ioctl(fd, NETDUMPSCONF, &ndconf) != 0) + err(EX_OSERR, "ioctl(NETDUMPSCONF)"); + } else if (enable) { char tmp[PATH_MAX]; char *dumpdev; @@ -276,6 +451,8 @@ main(int argc, char *argv[]) explicit_bzero(&kda, sizeof(kda)); if (i == 0 && verbose) printf("kernel dumps on %s\n", dumpdev); + if (i < 0) + err(EX_OSERR, "ioctl(DIOCSKERNELDUMP)"); } else { fd = open(_PATH_DEVNULL, O_RDONLY); if (fd < 0) @@ -286,9 +463,9 @@ main(int argc, char *argv[]) explicit_bzero(&kda, sizeof(kda)); if (i == 0 && verbose) printf("kernel dumps disabled\n"); + if (i < 0) + err(EX_OSERR, "ioctl(DIOCSKERNELDUMP)"); } - if (i < 0) - err(EX_OSERR, "ioctl(DIOCSKERNELDUMP)"); exit (0); } From owner-svn-src-user@freebsd.org Mon Jan 15 00:55:36 2018 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 2F4BDE6EE45 for ; Mon, 15 Jan 2018 00:55:36 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id E6937762C1; Mon, 15 Jan 2018 00:55:35 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 3B25115BD; Mon, 15 Jan 2018 00:55:35 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w0F0tZ2L047040; Mon, 15 Jan 2018 00:55:35 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w0F0tZxb047039; Mon, 15 Jan 2018 00:55:35 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201801150055.w0F0tZxb047039@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Mon, 15 Jan 2018 00:55:35 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r327984 - user/markj/netdump/sys/dev/alc X-SVN-Group: user X-SVN-Commit-Author: markj X-SVN-Commit-Paths: user/markj/netdump/sys/dev/alc X-SVN-Commit-Revision: 327984 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Jan 2018 00:55:36 -0000 Author: markj Date: Mon Jan 15 00:55:34 2018 New Revision: 327984 URL: https://svnweb.freebsd.org/changeset/base/327984 Log: Add netdump support to alc(4). Tested with an AR8162 adapter. Modified: user/markj/netdump/sys/dev/alc/if_alc.c Modified: user/markj/netdump/sys/dev/alc/if_alc.c ============================================================================== --- user/markj/netdump/sys/dev/alc/if_alc.c Mon Jan 15 00:53:40 2018 (r327983) +++ user/markj/netdump/sys/dev/alc/if_alc.c Mon Jan 15 00:55:34 2018 (r327984) @@ -64,6 +64,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -199,6 +200,7 @@ static int alc_shutdown(device_t); static void alc_start(struct ifnet *); static void alc_start_locked(struct ifnet *); static void alc_start_queue(struct alc_softc *); +static void alc_start_tx(struct alc_softc *); static void alc_stats_clear(struct alc_softc *); static void alc_stats_update(struct alc_softc *); static void alc_stop(struct alc_softc *); @@ -213,6 +215,8 @@ static int sysctl_int_range(SYSCTL_HANDLER_ARGS, int, static int sysctl_hw_alc_proc_limit(SYSCTL_HANDLER_ARGS); static int sysctl_hw_alc_int_mod(SYSCTL_HANDLER_ARGS); +NETDUMP_DEFINE(alc); + static device_method_t alc_methods[] = { /* Device interface. */ DEVMETHOD(device_probe, alc_probe), @@ -227,7 +231,7 @@ static device_method_t alc_methods[] = { DEVMETHOD(miibus_writereg, alc_miibus_writereg), DEVMETHOD(miibus_statchg, alc_miibus_statchg), - { NULL, NULL } + DEVMETHOD_END }; static driver_t alc_driver = { @@ -1651,6 +1655,9 @@ alc_attach(device_t dev) goto fail; } + /* Attach driver netdump methods. */ + NETDUMP_SET(ifp, alc); + fail: if (error != 0) alc_detach(dev); @@ -2974,25 +2981,31 @@ alc_start_locked(struct ifnet *ifp) ETHER_BPF_MTAP(ifp, m_head); } - if (enq > 0) { - /* Sync descriptors. */ - bus_dmamap_sync(sc->alc_cdata.alc_tx_ring_tag, - sc->alc_cdata.alc_tx_ring_map, BUS_DMASYNC_PREWRITE); - /* Kick. Assume we're using normal Tx priority queue. */ - if ((sc->alc_flags & ALC_FLAG_AR816X_FAMILY) != 0) - CSR_WRITE_2(sc, ALC_MBOX_TD_PRI0_PROD_IDX, - (uint16_t)sc->alc_cdata.alc_tx_prod); - else - CSR_WRITE_4(sc, ALC_MBOX_TD_PROD_IDX, - (sc->alc_cdata.alc_tx_prod << - MBOX_TD_PROD_LO_IDX_SHIFT) & - MBOX_TD_PROD_LO_IDX_MASK); - /* Set a timeout in case the chip goes out to lunch. */ - sc->alc_watchdog_timer = ALC_TX_TIMEOUT; - } + if (enq > 0) + alc_start_tx(sc); } static void +alc_start_tx(struct alc_softc *sc) +{ + + /* Sync descriptors. */ + bus_dmamap_sync(sc->alc_cdata.alc_tx_ring_tag, + sc->alc_cdata.alc_tx_ring_map, BUS_DMASYNC_PREWRITE); + /* Kick. Assume we're using normal Tx priority queue. */ + if ((sc->alc_flags & ALC_FLAG_AR816X_FAMILY) != 0) + CSR_WRITE_2(sc, ALC_MBOX_TD_PRI0_PROD_IDX, + (uint16_t)sc->alc_cdata.alc_tx_prod); + else + CSR_WRITE_4(sc, ALC_MBOX_TD_PROD_IDX, + (sc->alc_cdata.alc_tx_prod << + MBOX_TD_PROD_LO_IDX_SHIFT) & + MBOX_TD_PROD_LO_IDX_MASK); + /* Set a timeout in case the chip goes out to lunch. */ + sc->alc_watchdog_timer = ALC_TX_TIMEOUT; +} + +static void alc_watchdog(struct alc_softc *sc) { struct ifnet *ifp; @@ -4642,3 +4655,61 @@ sysctl_hw_alc_int_mod(SYSCTL_HANDLER_ARGS) return (sysctl_int_range(oidp, arg1, arg2, req, ALC_IM_TIMER_MIN, ALC_IM_TIMER_MAX)); } + +#ifdef NETDUMP +static void +alc_netdump_init(struct ifnet *ifp, int *nmbufp, int *nclustp) +{ + + *nmbufp += ALC_RX_RING_CNT; + *nclustp += ALC_RX_RING_CNT; +} + +static void +alc_netdump_event(struct ifnet *ifp, enum netdump_ev event) +{ + struct alc_softc *sc; + + sc = ifp->if_softc; + switch (event) { + case NETDUMP_START: + sc->alc_buf_size = imin(sc->alc_buf_size, MCLBYTES); + break; + default: + break; + } +} + +static int +alc_netdump_transmit(struct ifnet *ifp, struct mbuf *m) +{ + struct alc_softc *sc; + int error; + + sc = ifp->if_softc; + + if ((if_getdrvflags(ifp) & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) != + IFF_DRV_RUNNING) + return (EBUSY); + + error = alc_encap(sc, &m); + if (error == 0) + alc_start_tx(sc); + return (error); +} + +static int +alc_netdump_poll(struct ifnet *ifp, int count) +{ + struct alc_softc *sc; + + sc = ifp->if_softc; + + if ((if_getdrvflags(ifp) & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) != + IFF_DRV_RUNNING) + return (EBUSY); + + alc_txeof(sc); + return (alc_rxintr(sc, count)); +} +#endif /* NETDUMP */ From owner-svn-src-user@freebsd.org Mon Jan 15 00:57:11 2018 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4CBB6E6EF16 for ; Mon, 15 Jan 2018 00:57:11 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 2681A763DF; Mon, 15 Jan 2018 00:57:11 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 63DAC15C1; Mon, 15 Jan 2018 00:57:10 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w0F0vA0X047138; Mon, 15 Jan 2018 00:57:10 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w0F0vAdc047137; Mon, 15 Jan 2018 00:57:10 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201801150057.w0F0vAdc047137@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Mon, 15 Jan 2018 00:57:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r327985 - user/markj/netdump/sys/dev/re X-SVN-Group: user X-SVN-Commit-Author: markj X-SVN-Commit-Paths: user/markj/netdump/sys/dev/re X-SVN-Commit-Revision: 327985 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Jan 2018 00:57:11 -0000 Author: markj Date: Mon Jan 15 00:57:09 2018 New Revision: 327985 URL: https://svnweb.freebsd.org/changeset/base/327985 Log: Add netdump support to re(4). Tested with a RealTek 8101E adapter. Modified: user/markj/netdump/sys/dev/re/if_re.c Modified: user/markj/netdump/sys/dev/re/if_re.c ============================================================================== --- user/markj/netdump/sys/dev/re/if_re.c Mon Jan 15 00:55:34 2018 (r327984) +++ user/markj/netdump/sys/dev/re/if_re.c Mon Jan 15 00:57:09 2018 (r327985) @@ -139,6 +139,8 @@ __FBSDID("$FreeBSD$"); #include +#include + #include #include #include @@ -279,6 +281,7 @@ static void re_tick (void *); static void re_int_task (void *, int); static void re_start (struct ifnet *); static void re_start_locked (struct ifnet *); +static void re_start_tx (struct rl_softc *); static int re_ioctl (struct ifnet *, u_long, caddr_t); static void re_init (void *); static void re_init_locked (struct rl_softc *); @@ -307,6 +310,8 @@ static void re_setwol (struct rl_softc *); static void re_clrwol (struct rl_softc *); static void re_set_linkspeed (struct rl_softc *); +NETDUMP_DEFINE(re); + #ifdef DEV_NETMAP /* see ixgbe.c for details */ #include MODULE_DEPEND(re, netmap, 1, 1, 1); @@ -1737,8 +1742,11 @@ re_attach(device_t dev) if (error) { device_printf(dev, "couldn't set up irq\n"); ether_ifdetach(ifp); + goto fail; } + NETDUMP_SET(ifp, re); + fail: if (error) re_detach(dev); @@ -2981,8 +2989,14 @@ re_start_locked(struct ifnet *ifp) return; } - /* Flush the TX descriptors */ + re_start_tx(sc); +} +static void +re_start_tx(struct rl_softc *sc) +{ + + /* Flush the TX descriptors */ bus_dmamap_sync(sc->rl_ldata.rl_tx_list_tag, sc->rl_ldata.rl_tx_list_map, BUS_DMASYNC_PREWRITE|BUS_DMASYNC_PREREAD); @@ -4078,3 +4092,69 @@ sysctl_hw_re_int_mod(SYSCTL_HANDLER_ARGS) return (sysctl_int_range(oidp, arg1, arg2, req, RL_TIMER_MIN, RL_TIMER_MAX)); } + +#ifdef NETDUMP +static void +re_netdump_init(struct ifnet *ifp, int *nmbufp, int *nclustp) +{ + struct rl_softc *sc; + + sc = ifp->if_softc; + + *nmbufp += sc->rl_ldata.rl_rx_desc_cnt; + *nclustp += sc->rl_ldata.rl_rx_desc_cnt; +} + +static void +re_netdump_event(struct ifnet *ifp, enum netdump_ev event) +{ + struct rl_softc *sc; + + sc = ifp->if_softc; + + switch (event) { + case NETDUMP_START: + sc->rl_flags &= ~RL_FLAG_JUMBOV2; + break; + default: + break; + } +} + +static int +re_netdump_transmit(struct ifnet *ifp, struct mbuf *m) +{ + struct rl_softc *sc; + int error; + + sc = ifp->if_softc; + + if ((ifp->if_drv_flags & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) != + IFF_DRV_RUNNING || (sc->rl_flags & RL_FLAG_LINK) == 0) + return (EBUSY); + + error = re_encap(sc, &m); + if (error == 0) + re_start_tx(sc); + return (error); +} + +static int +re_netdump_poll(struct ifnet *ifp, int count) +{ + struct rl_softc *sc; + int error; + + sc = ifp->if_softc; + + if ((ifp->if_drv_flags & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) != + IFF_DRV_RUNNING || (sc->rl_flags & RL_FLAG_LINK) == 0) + return (EBUSY); + + re_txeof(sc); + error = re_rxeof(sc, NULL); + if (error != 0 && error != EAGAIN) + return (error); + return (0); +} +#endif /* NETDUMP */ From owner-svn-src-user@freebsd.org Mon Jan 15 00:57:56 2018 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 64656E6EFB4 for ; Mon, 15 Jan 2018 00:57:56 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 3EDEC764D9; Mon, 15 Jan 2018 00:57:56 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6533415C3; Mon, 15 Jan 2018 00:57:55 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w0F0vtg8047210; Mon, 15 Jan 2018 00:57:55 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w0F0vtB5047209; Mon, 15 Jan 2018 00:57:55 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201801150057.w0F0vtB5047209@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Mon, 15 Jan 2018 00:57:55 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r327986 - user/markj/netdump/sys/dev/virtio/network X-SVN-Group: user X-SVN-Commit-Author: markj X-SVN-Commit-Paths: user/markj/netdump/sys/dev/virtio/network X-SVN-Commit-Revision: 327986 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Jan 2018 00:57:56 -0000 Author: markj Date: Mon Jan 15 00:57:55 2018 New Revision: 327986 URL: https://svnweb.freebsd.org/changeset/base/327986 Log: Add netdump support to vtnet(4). Tested with bhyve. Modified: user/markj/netdump/sys/dev/virtio/network/if_vtnet.c Modified: user/markj/netdump/sys/dev/virtio/network/if_vtnet.c ============================================================================== --- user/markj/netdump/sys/dev/virtio/network/if_vtnet.c Mon Jan 15 00:57:09 2018 (r327985) +++ user/markj/netdump/sys/dev/virtio/network/if_vtnet.c Mon Jan 15 00:57:55 2018 (r327986) @@ -70,6 +70,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -143,7 +144,7 @@ static struct mbuf * struct virtio_net_hdr *); static int vtnet_txq_enqueue_buf(struct vtnet_txq *, struct mbuf **, struct vtnet_tx_header *); -static int vtnet_txq_encap(struct vtnet_txq *, struct mbuf **); +static int vtnet_txq_encap(struct vtnet_txq *, struct mbuf **, int); #ifdef VTNET_LEGACY_TX static void vtnet_start_locked(struct vtnet_txq *, struct ifnet *); static void vtnet_start(struct ifnet *); @@ -231,6 +232,8 @@ static void vtnet_disable_interrupts(struct vtnet_soft static int vtnet_tunable_int(struct vtnet_softc *, const char *, int); +NETDUMP_DEFINE(vtnet); + /* Tunables. */ static SYSCTL_NODE(_hw, OID_AUTO, vtnet, CTLFLAG_RD, 0, "VNET driver parameters"); static int vtnet_csum_disable = 0; @@ -1027,6 +1030,8 @@ vtnet_setup_interface(struct vtnet_softc *sc) vtnet_set_rx_process_limit(sc); vtnet_set_tx_intr_threshold(sc); + NETDUMP_SET(ifp, vtnet); + return (0); } @@ -1779,6 +1784,7 @@ vtnet_rxq_eof(struct vtnet_rxq *rxq) m = virtqueue_dequeue(vq, &len); if (m == NULL) break; + deq++; if (len < sc->vtnet_hdr_size + ETHER_HDR_LEN) { @@ -1806,6 +1812,7 @@ vtnet_rxq_eof(struct vtnet_rxq *rxq) vtnet_rxq_discard_buf(rxq, m); if (nbufs > 1) vtnet_rxq_discard_merged_bufs(rxq, nbufs); + printf("vtnet_rxq_replace_buf failed!\n"); continue; } @@ -2177,7 +2184,7 @@ fail: } static int -vtnet_txq_encap(struct vtnet_txq *txq, struct mbuf **m_head) +vtnet_txq_encap(struct vtnet_txq *txq, struct mbuf **m_head, int flags) { struct vtnet_tx_header *txhdr; struct virtio_net_hdr *hdr; @@ -2187,7 +2194,7 @@ vtnet_txq_encap(struct vtnet_txq *txq, struct mbuf **m m = *m_head; M_ASSERTPKTHDR(m); - txhdr = uma_zalloc(vtnet_tx_header_zone, M_NOWAIT | M_ZERO); + txhdr = uma_zalloc(vtnet_tx_header_zone, flags | M_ZERO); if (txhdr == NULL) { m_freem(m); *m_head = NULL; @@ -2261,7 +2268,7 @@ again: if (m0 == NULL) break; - if (vtnet_txq_encap(txq, &m0) != 0) { + if (vtnet_txq_encap(txq, &m0, M_NOWAIT) != 0) { if (m0 != NULL) IFQ_DRV_PREPEND(&ifp->if_snd, m0); break; @@ -2338,7 +2345,7 @@ again: break; } - if (vtnet_txq_encap(txq, &m) != 0) { + if (vtnet_txq_encap(txq, &m, M_NOWAIT) != 0) { if (m != NULL) drbr_putback(ifp, br, m); else @@ -3977,3 +3984,82 @@ vtnet_tunable_int(struct vtnet_softc *sc, const char * return (def); } + +#ifdef NETDUMP +static void +vtnet_netdump_init(struct ifnet *ifp, int *nmbufp, int *nclustp) +{ + struct vtnet_softc *sc; + + sc = ifp->if_softc; + + /* + * Allocate enough packet buffers to fill an entire queue. This ought + * to be enough provided that we don't have many queues. + */ + *nmbufp += virtqueue_size(sc->vtnet_rxqs[0].vtnrx_vq); + *nclustp += virtqueue_size(sc->vtnet_rxqs[0].vtnrx_vq); + + /* + * We need to allocate from this zone in the transmit path, so ensure + * that we have at least one item per header available. + * XXX add a separate zone like we do for mbufs? otherwise we may alloc + * buckets + */ + uma_zone_reserve_kva(vtnet_tx_header_zone, NETDUMP_MAX_IN_FLIGHT * 2); +} + +static void +vtnet_netdump_event(struct ifnet *ifp, enum netdump_ev event) +{ + struct vtnet_softc *sc; + + sc = ifp->if_softc; + + switch (event) { + case NETDUMP_START: + sc->vtnet_rx_clsize = MCLBYTES; + break; + default: + break; + } +} + +static int +vtnet_netdump_transmit(struct ifnet *ifp, struct mbuf *m) +{ + struct vtnet_softc *sc; + struct vtnet_txq *txq; + int error; + + sc = ifp->if_softc; + + if ((if_getdrvflags(ifp) & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) != + IFF_DRV_RUNNING) + return (EBUSY); + + txq = &sc->vtnet_txqs[0]; + error = vtnet_txq_encap(txq, &m, M_NOWAIT | M_USE_RESERVE); + if (error == 0) + error = vtnet_txq_notify(txq); + return (error); +} + +static int +vtnet_netdump_poll(struct ifnet *ifp, int count) +{ + struct vtnet_softc *sc; + int i; + + sc = ifp->if_softc; + + if ((if_getdrvflags(ifp) & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) != + IFF_DRV_RUNNING) + return (EBUSY); + + (void)vtnet_txq_eof(&sc->vtnet_txqs[0]); + for (i = 0; i < sc->vtnet_max_vq_pairs; i++) + (void)vtnet_rxq_eof(&sc->vtnet_rxqs[i]); + return (0); +} +#endif /* NETDUMP */ From owner-svn-src-user@freebsd.org Mon Jan 15 01:06:54 2018 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id C184CE6F8E2 for ; Mon, 15 Jan 2018 01:06:54 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 83EF0769FF; Mon, 15 Jan 2018 01:06:54 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id BD7D51761; Mon, 15 Jan 2018 01:06:53 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w0F16rmT051454; Mon, 15 Jan 2018 01:06:53 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w0F16roK051453; Mon, 15 Jan 2018 01:06:53 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201801150106.w0F16roK051453@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Mon, 15 Jan 2018 01:06:53 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r327987 - user/markj/netdump/sys/net X-SVN-Group: user X-SVN-Commit-Author: markj X-SVN-Commit-Paths: user/markj/netdump/sys/net X-SVN-Commit-Revision: 327987 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Jan 2018 01:06:54 -0000 Author: markj Date: Mon Jan 15 01:06:53 2018 New Revision: 327987 URL: https://svnweb.freebsd.org/changeset/base/327987 Log: Add netdump support to iflib. Tested with bhyve's e1000 emulation (em) and a I210 adapter (igb). Modified: user/markj/netdump/sys/net/iflib.c Modified: user/markj/netdump/sys/net/iflib.c ============================================================================== --- user/markj/netdump/sys/net/iflib.c Mon Jan 15 00:57:55 2018 (r327986) +++ user/markj/netdump/sys/net/iflib.c Mon Jan 15 01:06:53 2018 (r327987) @@ -52,7 +52,6 @@ __FBSDID("$FreeBSD$"); #include #include - #include #include #include @@ -71,6 +70,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -727,6 +727,8 @@ static void iflib_if_init_locked(if_ctx_t ctx); static struct mbuf * iflib_fixup_rx(struct mbuf *m); #endif +NETDUMP_DEFINE(iflib); + #ifdef DEV_NETMAP #include #include @@ -3363,7 +3365,7 @@ iflib_tx_desc_free(iflib_txq_t txq, int n) ifsd_map = txq->ift_sds.ifsd_map; do_prefetch = (txq->ift_ctx->ifc_flags & IFC_PREFETCH); - while (n--) { + while (n-- > 0) { if (do_prefetch) { prefetch(ifsd_m[(cidx + 3) & mask]); prefetch(ifsd_m[(cidx + 4) & mask]); @@ -4397,6 +4399,8 @@ iflib_device_register(device_t dev, void *sc, if_share } *ctxp = ctx; + NETDUMP_SET(ctx->ifc_ifp, iflib); + if_setgetcounterfn(ctx->ifc_ifp, iflib_if_get_counter); iflib_add_device_sysctl_post(ctx); ctx->ifc_flags |= IFC_INIT_DONE; @@ -5962,3 +5966,81 @@ iflib_fixup_rx(struct mbuf *m) return (n); } #endif + +#ifdef NETDUMP +static void +iflib_netdump_init(struct ifnet *ifp, int *nmbufp, int *nclustp) +{ + if_ctx_t ctx; + + ctx = ifp->if_softc; + + *nmbufp += ctx->ifc_rxqs[0].ifr_fl->ifl_size; + *nclustp += ctx->ifc_rxqs[0].ifr_fl->ifl_size; +} + +static void +iflib_netdump_event(struct ifnet *ifp, enum netdump_ev event) +{ + if_ctx_t ctx; + if_softc_ctx_t scctx; + int i; + + ctx = ifp->if_softc; + scctx = &ctx->ifc_softc_ctx; + + switch (event) { + case NETDUMP_START: + for (i = 0; i < scctx->isc_nrxqsets; i++) + ctx->ifc_rxqs[i].ifr_fl->ifl_buf_size = MCLBYTES; + iflib_no_tx_batch = 1; + break; + default: + break; + } +} + +static int +iflib_netdump_transmit(struct ifnet *ifp, struct mbuf *m) +{ + if_ctx_t ctx; + iflib_txq_t txq; + int error; + + ctx = ifp->if_softc; + + if ((if_getdrvflags(ifp) & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) != + IFF_DRV_RUNNING) + return (EBUSY); + + txq = &ctx->ifc_txqs[0]; + error = iflib_encap(txq, &m); + if (error == 0) + (void)iflib_txd_db_check(ctx, txq, true, txq->ift_in_use); + return (error); +} + +static int +iflib_netdump_poll(struct ifnet *ifp, int count) +{ + if_ctx_t ctx; + if_softc_ctx_t scctx; + iflib_txq_t txq; + int i; + + ctx = ifp->if_softc; + scctx = &ctx->ifc_softc_ctx; + + if ((if_getdrvflags(ifp) & (IFF_DRV_RUNNING | IFF_DRV_OACTIVE)) != + IFF_DRV_RUNNING) + return (EBUSY); + + txq = &ctx->ifc_txqs[0]; + (void)iflib_tx_credits_update(ctx, txq); + (void)iflib_completed_tx_reclaim(txq, RECLAIM_THRESH(ctx)); + + for (i = 0; i < scctx->isc_nrxqsets; i++) + (void)iflib_rxeof(&ctx->ifc_rxqs[i], 16 /* XXX */); + return (0); +} +#endif /* NETDUMP */ From owner-svn-src-user@freebsd.org Mon Jan 15 01:19:19 2018 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BCC54E70765 for ; Mon, 15 Jan 2018 01:19:19 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4C2B177175; Mon, 15 Jan 2018 01:19:18 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 8C28E1906; Mon, 15 Jan 2018 01:19:17 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w0F1JHhj055902; Mon, 15 Jan 2018 01:19:17 GMT (envelope-from jeff@FreeBSD.org) Received: (from jeff@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w0F1JFlc055878; Mon, 15 Jan 2018 01:19:15 GMT (envelope-from jeff@FreeBSD.org) Message-Id: <201801150119.w0F1JFlc055878@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jeff set sender to jeff@FreeBSD.org using -f From: Jeff Roberson Date: Mon, 15 Jan 2018 01:19:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r327989 - in user/jeff/numa: . cddl/usr.sbin/dtrace/tests/tools contrib/compiler-rt/include/sanitizer contrib/compiler-rt/include/xray contrib/compiler-rt/lib/BlocksRuntime contrib/comp... X-SVN-Group: user X-SVN-Commit-Author: jeff X-SVN-Commit-Paths: in user/jeff/numa: . cddl/usr.sbin/dtrace/tests/tools contrib/compiler-rt/include/sanitizer contrib/compiler-rt/include/xray contrib/compiler-rt/lib/BlocksRuntime contrib/compiler-rt/lib/asan contrib/... X-SVN-Commit-Revision: 327989 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Jan 2018 01:19:19 -0000 Author: jeff Date: Mon Jan 15 01:19:11 2018 New Revision: 327989 URL: https://svnweb.freebsd.org/changeset/base/327989 Log: Merge from head Added: user/jeff/numa/contrib/compiler-rt/include/sanitizer/hwasan_interface.h - copied unchanged from r327986, head/contrib/compiler-rt/include/sanitizer/hwasan_interface.h user/jeff/numa/contrib/compiler-rt/include/sanitizer/scudo_interface.h - copied unchanged from r327986, head/contrib/compiler-rt/include/sanitizer/scudo_interface.h user/jeff/numa/contrib/compiler-rt/lib/asan/asan_fuchsia.cc - copied unchanged from r327986, head/contrib/compiler-rt/lib/asan/asan_fuchsia.cc user/jeff/numa/contrib/compiler-rt/lib/asan/asan_interceptors_memintrinsics.cc - copied unchanged from r327986, head/contrib/compiler-rt/lib/asan/asan_interceptors_memintrinsics.cc user/jeff/numa/contrib/compiler-rt/lib/asan/asan_interceptors_memintrinsics.h - copied unchanged from r327986, head/contrib/compiler-rt/lib/asan/asan_interceptors_memintrinsics.h user/jeff/numa/contrib/compiler-rt/lib/asan/asan_premap_shadow.cc - copied unchanged from r327986, head/contrib/compiler-rt/lib/asan/asan_premap_shadow.cc user/jeff/numa/contrib/compiler-rt/lib/asan/asan_premap_shadow.h - copied unchanged from r327986, head/contrib/compiler-rt/lib/asan/asan_premap_shadow.h user/jeff/numa/contrib/compiler-rt/lib/asan/asan_shadow_setup.cc - copied unchanged from r327986, head/contrib/compiler-rt/lib/asan/asan_shadow_setup.cc user/jeff/numa/contrib/compiler-rt/lib/builtins/aarch64/ - copied from r327986, head/contrib/compiler-rt/lib/builtins/aarch64/ user/jeff/numa/contrib/compiler-rt/lib/hwasan/ - copied from r327986, head/contrib/compiler-rt/lib/hwasan/ user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sancov_begin.S - copied unchanged from r327986, head/contrib/compiler-rt/lib/sanitizer_common/sancov_begin.S user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sancov_end.S - copied unchanged from r327986, head/contrib/compiler-rt/lib/sanitizer_common/sancov_end.S user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_checks.cc - copied unchanged from r327986, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_checks.cc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic_clang_mips.h - copied unchanged from r327986, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic_clang_mips.h user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_fuchsia.cc - copied unchanged from r327986, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_fuchsia.cc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_file.cc - copied unchanged from r327986, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_file.cc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_file.h - copied unchanged from r327986, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_file.h user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_fuchsia.cc - copied unchanged from r327986, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_fuchsia.cc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_fuchsia.h - copied unchanged from r327986, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_fuchsia.h user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_getauxval.h - copied unchanged from r327986, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_getauxval.h user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_netbsd.cc - copied unchanged from r327986, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_netbsd.cc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_netbsd.h - copied unchanged from r327986, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_netbsd.h user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_solaris.cc - copied unchanged from r327986, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_solaris.cc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_solaris.h - copied unchanged from r327986, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_solaris.h user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_solaris.cc - copied unchanged from r327986, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_solaris.cc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_signal_interceptors.inc - copied unchanged from r327986, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_signal_interceptors.inc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_solaris.cc - copied unchanged from r327986, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_solaris.cc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_fuchsia.cc - copied unchanged from r327986, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_fuchsia.cc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_syscall_linux_arm.inc - copied unchanged from r327986, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_syscall_linux_arm.inc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_vector.h - copied unchanged from r327986, head/contrib/compiler-rt/lib/sanitizer_common/sanitizer_vector.h user/jeff/numa/contrib/compiler-rt/lib/scudo/scudo_interface_internal.h - copied unchanged from r327986, head/contrib/compiler-rt/lib/scudo/scudo_interface_internal.h user/jeff/numa/contrib/compiler-rt/lib/scudo/scudo_platform.h - copied unchanged from r327986, head/contrib/compiler-rt/lib/scudo/scudo_platform.h user/jeff/numa/contrib/compiler-rt/lib/scudo/scudo_tsd.h - copied unchanged from r327986, head/contrib/compiler-rt/lib/scudo/scudo_tsd.h user/jeff/numa/contrib/compiler-rt/lib/scudo/scudo_tsd_exclusive.cpp - copied unchanged from r327986, head/contrib/compiler-rt/lib/scudo/scudo_tsd_exclusive.cpp user/jeff/numa/contrib/compiler-rt/lib/scudo/scudo_tsd_exclusive.inc - copied unchanged from r327986, head/contrib/compiler-rt/lib/scudo/scudo_tsd_exclusive.inc user/jeff/numa/contrib/compiler-rt/lib/scudo/scudo_tsd_shared.cpp - copied unchanged from r327986, head/contrib/compiler-rt/lib/scudo/scudo_tsd_shared.cpp user/jeff/numa/contrib/compiler-rt/lib/scudo/scudo_tsd_shared.inc - copied unchanged from r327986, head/contrib/compiler-rt/lib/scudo/scudo_tsd_shared.inc user/jeff/numa/contrib/compiler-rt/lib/ubsan/ubsan_signals_standalone.cc - copied unchanged from r327986, head/contrib/compiler-rt/lib/ubsan/ubsan_signals_standalone.cc user/jeff/numa/contrib/compiler-rt/lib/ubsan/ubsan_signals_standalone.h - copied unchanged from r327986, head/contrib/compiler-rt/lib/ubsan/ubsan_signals_standalone.h user/jeff/numa/contrib/compiler-rt/lib/ubsan_minimal/ - copied from r327986, head/contrib/compiler-rt/lib/ubsan_minimal/ user/jeff/numa/contrib/compiler-rt/lib/xray/weak_symbols.txt - copied unchanged from r327986, head/contrib/compiler-rt/lib/xray/weak_symbols.txt user/jeff/numa/contrib/compiler-rt/lib/xray/xray_inmemory_log.h - copied unchanged from r327986, head/contrib/compiler-rt/lib/xray/xray_inmemory_log.h user/jeff/numa/contrib/llvm/include/llvm-c/DebugInfo.h - copied unchanged from r327986, head/contrib/llvm/include/llvm-c/DebugInfo.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/CmpInstAnalysis.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/Analysis/CmpInstAnalysis.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/OptimizationRemarkEmitter.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/Analysis/OptimizationRemarkEmitter.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/ValueLattice.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/Analysis/ValueLattice.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/ValueLatticeUtils.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/Analysis/ValueLatticeUtils.h user/jeff/numa/contrib/llvm/include/llvm/BinaryFormat/ELFRelocs/ARC.def - copied unchanged from r327986, head/contrib/llvm/include/llvm/BinaryFormat/ELFRelocs/ARC.def user/jeff/numa/contrib/llvm/include/llvm/BinaryFormat/WasmRelocs.def - copied unchanged from r327986, head/contrib/llvm/include/llvm/BinaryFormat/WasmRelocs.def user/jeff/numa/contrib/llvm/include/llvm/CodeGen/CommandFlags.def - copied unchanged from r327986, head/contrib/llvm/include/llvm/CodeGen/CommandFlags.def user/jeff/numa/contrib/llvm/include/llvm/CodeGen/CostTable.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/CodeGen/CostTable.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/GlobalISel/GISelWorkList.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/CodeGen/GlobalISel/GISelWorkList.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/CodeGen/GlobalISel/LegalizationArtifactCombiner.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/LiveIntervals.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/CodeGen/LiveIntervals.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/LiveStacks.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/CodeGen/LiveStacks.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/RuntimeLibcalls.def - copied unchanged from r327986, head/contrib/llvm/include/llvm/CodeGen/RuntimeLibcalls.def user/jeff/numa/contrib/llvm/include/llvm/CodeGen/SDNodeProperties.td - copied unchanged from r327986, head/contrib/llvm/include/llvm/CodeGen/SDNodeProperties.td user/jeff/numa/contrib/llvm/include/llvm/CodeGen/TargetCallingConv.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/CodeGen/TargetCallingConv.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/TargetFrameLowering.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/CodeGen/TargetFrameLowering.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/TargetInstrInfo.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/CodeGen/TargetInstrInfo.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/TargetLowering.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/CodeGen/TargetLowering.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/TargetLoweringObjectFile.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/CodeGen/TargetLoweringObjectFile.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/TargetOpcodes.def - copied unchanged from r327986, head/contrib/llvm/include/llvm/CodeGen/TargetOpcodes.def user/jeff/numa/contrib/llvm/include/llvm/CodeGen/TargetOpcodes.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/CodeGen/TargetOpcodes.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/TargetRegisterInfo.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/CodeGen/TargetRegisterInfo.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/TargetSubtargetInfo.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/CodeGen/TargetSubtargetInfo.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/CodeView/AppendingTypeTableBuilder.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/DebugInfo/CodeView/AppendingTypeTableBuilder.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeViewRegisters.def - copied unchanged from r327986, head/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeViewRegisters.def user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/CodeView/ContinuationRecordBuilder.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/DebugInfo/CodeView/ContinuationRecordBuilder.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/CodeView/GlobalTypeTableBuilder.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/DebugInfo/CodeView/GlobalTypeTableBuilder.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/DebugInfo/CodeView/MergingTypeTableBuilder.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/CodeView/RecordName.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/DebugInfo/CodeView/RecordName.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/CodeView/SimpleTypeSerializer.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/DebugInfo/CodeView/SimpleTypeSerializer.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeHashing.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeHashing.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFExpression.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFExpression.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFObject.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFObject.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumTables.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIAEnumTables.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIATable.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIATable.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBTable.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBTable.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/PDB/Native/GSIStreamBuilder.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/GSIStreamBuilder.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumSymbol.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumSymbol.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumTypes.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeEnumTypes.h user/jeff/numa/contrib/llvm/include/llvm/ExecutionEngine/Orc/RemoteObjectLayer.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/ExecutionEngine/Orc/RemoteObjectLayer.h user/jeff/numa/contrib/llvm/include/llvm/ExecutionEngine/Orc/SymbolStringPool.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/ExecutionEngine/Orc/SymbolStringPool.h user/jeff/numa/contrib/llvm/include/llvm/FuzzMutate/ - copied from r327986, head/contrib/llvm/include/llvm/FuzzMutate/ user/jeff/numa/contrib/llvm/include/llvm/IR/DiagnosticHandler.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/IR/DiagnosticHandler.h user/jeff/numa/contrib/llvm/include/llvm/MC/MCCodePadder.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/MC/MCCodePadder.h user/jeff/numa/contrib/llvm/include/llvm/MC/MCTargetOptionsCommandFlags.def - copied unchanged from r327986, head/contrib/llvm/include/llvm/MC/MCTargetOptionsCommandFlags.def user/jeff/numa/contrib/llvm/include/llvm/ObjectYAML/CodeViewYAMLTypeHashing.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/ObjectYAML/CodeViewYAMLTypeHashing.h user/jeff/numa/contrib/llvm/include/llvm/ProfileData/GCOV.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/ProfileData/GCOV.h user/jeff/numa/contrib/llvm/include/llvm/Support/AMDGPUKernelDescriptor.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/Support/AMDGPUKernelDescriptor.h user/jeff/numa/contrib/llvm/include/llvm/Support/AMDGPUMetadata.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/Support/AMDGPUMetadata.h user/jeff/numa/contrib/llvm/include/llvm/Support/CodeGenCoverage.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/Support/CodeGenCoverage.h user/jeff/numa/contrib/llvm/include/llvm/Support/X86TargetParser.def - copied unchanged from r327986, head/contrib/llvm/include/llvm/Support/X86TargetParser.def user/jeff/numa/contrib/llvm/include/llvm/Transforms/IPO/CalledValuePropagation.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/Transforms/IPO/CalledValuePropagation.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Instrumentation/ - copied from r327986, head/contrib/llvm/include/llvm/Transforms/Instrumentation/ user/jeff/numa/contrib/llvm/include/llvm/Transforms/Scalar/CallSiteSplitting.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/Transforms/Scalar/CallSiteSplitting.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Scalar/DivRemPairs.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/Transforms/Scalar/DivRemPairs.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Scalar/RewriteStatepointsForGC.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/Transforms/Scalar/RewriteStatepointsForGC.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Scalar/SpeculateAroundPHIs.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/Transforms/Scalar/SpeculateAroundPHIs.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Utils/CallPromotionUtils.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/Transforms/Utils/CallPromotionUtils.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Utils/EntryExitInstrumenter.h - copied unchanged from r327986, head/contrib/llvm/include/llvm/Transforms/Utils/EntryExitInstrumenter.h user/jeff/numa/contrib/llvm/include/llvm/WindowsManifest/ - copied from r327986, head/contrib/llvm/include/llvm/WindowsManifest/ user/jeff/numa/contrib/llvm/include/llvm/WindowsResource/ - copied from r327986, head/contrib/llvm/include/llvm/WindowsResource/ user/jeff/numa/contrib/llvm/lib/Analysis/CmpInstAnalysis.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Analysis/CmpInstAnalysis.cpp user/jeff/numa/contrib/llvm/lib/Analysis/OptimizationRemarkEmitter.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Analysis/OptimizationRemarkEmitter.cpp user/jeff/numa/contrib/llvm/lib/Analysis/ValueLattice.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Analysis/ValueLattice.cpp user/jeff/numa/contrib/llvm/lib/Analysis/ValueLatticeUtils.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Analysis/ValueLatticeUtils.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/ExpandMemCmp.cpp - copied unchanged from r327986, head/contrib/llvm/lib/CodeGen/ExpandMemCmp.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/LiveIntervals.cpp - copied unchanged from r327986, head/contrib/llvm/lib/CodeGen/LiveIntervals.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/LiveStacks.cpp - copied unchanged from r327986, head/contrib/llvm/lib/CodeGen/LiveStacks.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/MIRCanonicalizerPass.cpp - copied unchanged from r327986, head/contrib/llvm/lib/CodeGen/MIRCanonicalizerPass.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/MachineOperand.cpp - copied unchanged from r327986, head/contrib/llvm/lib/CodeGen/MachineOperand.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/CodeView/AppendingTypeTableBuilder.cpp - copied unchanged from r327986, head/contrib/llvm/lib/DebugInfo/CodeView/AppendingTypeTableBuilder.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/CodeView/ContinuationRecordBuilder.cpp - copied unchanged from r327986, head/contrib/llvm/lib/DebugInfo/CodeView/ContinuationRecordBuilder.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/CodeView/GlobalTypeTableBuilder.cpp - copied unchanged from r327986, head/contrib/llvm/lib/DebugInfo/CodeView/GlobalTypeTableBuilder.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/CodeView/MergingTypeTableBuilder.cpp - copied unchanged from r327986, head/contrib/llvm/lib/DebugInfo/CodeView/MergingTypeTableBuilder.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/CodeView/RecordName.cpp - copied unchanged from r327986, head/contrib/llvm/lib/DebugInfo/CodeView/RecordName.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/CodeView/SimpleTypeSerializer.cpp - copied unchanged from r327986, head/contrib/llvm/lib/DebugInfo/CodeView/SimpleTypeSerializer.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/CodeView/TypeHashing.cpp - copied unchanged from r327986, head/contrib/llvm/lib/DebugInfo/CodeView/TypeHashing.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/DWARF/DWARFExpression.cpp - copied unchanged from r327986, head/contrib/llvm/lib/DebugInfo/DWARF/DWARFExpression.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumTables.cpp - copied unchanged from r327986, head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIAEnumTables.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/PDB/DIA/DIATable.cpp - copied unchanged from r327986, head/contrib/llvm/lib/DebugInfo/PDB/DIA/DIATable.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/PDB/Native/GSIStreamBuilder.cpp - copied unchanged from r327986, head/contrib/llvm/lib/DebugInfo/PDB/Native/GSIStreamBuilder.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/PDB/Native/NativeEnumSymbol.cpp - copied unchanged from r327986, head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeEnumSymbol.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/PDB/Native/NativeEnumTypes.cpp - copied unchanged from r327986, head/contrib/llvm/lib/DebugInfo/PDB/Native/NativeEnumTypes.cpp user/jeff/numa/contrib/llvm/lib/FuzzMutate/ - copied from r327986, head/contrib/llvm/lib/FuzzMutate/ user/jeff/numa/contrib/llvm/lib/IR/DiagnosticHandler.cpp - copied unchanged from r327986, head/contrib/llvm/lib/IR/DiagnosticHandler.cpp user/jeff/numa/contrib/llvm/lib/MC/MCCodePadder.cpp - copied unchanged from r327986, head/contrib/llvm/lib/MC/MCCodePadder.cpp user/jeff/numa/contrib/llvm/lib/ObjectYAML/CodeViewYAMLTypeHashing.cpp - copied unchanged from r327986, head/contrib/llvm/lib/ObjectYAML/CodeViewYAMLTypeHashing.cpp user/jeff/numa/contrib/llvm/lib/ProfileData/GCOV.cpp - copied unchanged from r327986, head/contrib/llvm/lib/ProfileData/GCOV.cpp user/jeff/numa/contrib/llvm/lib/Support/AMDGPUMetadata.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Support/AMDGPUMetadata.cpp user/jeff/numa/contrib/llvm/lib/Support/CodeGenCoverage.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Support/CodeGenCoverage.cpp user/jeff/numa/contrib/llvm/lib/Support/KnownBits.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Support/KnownBits.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64SIMDInstrOpt.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/AArch64/AArch64SIMDInstrOpt.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td - copied unchanged from r327986, head/contrib/llvm/lib/Target/AArch64/AArch64SVEInstrInfo.td user/jeff/numa/contrib/llvm/lib/Target/AArch64/SVEInstrFormats.td - copied unchanged from r327986, head/contrib/llvm/lib/Target/AArch64/SVEInstrFormats.td user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPUArgumentUsageInfo.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/AMDGPU/AMDGPUArgumentUsageInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPUArgumentUsageInfo.h - copied unchanged from r327986, head/contrib/llvm/lib/Target/AMDGPU/AMDGPUArgumentUsageInfo.h user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPUInline.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/AMDGPU/AMDGPUInline.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPULibCalls.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/AMDGPU/AMDGPULibCalls.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPULibFunc.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/AMDGPU/AMDGPULibFunc.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPULibFunc.h - copied unchanged from r327986, head/contrib/llvm/lib/Target/AMDGPU/AMDGPULibFunc.h user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPUMachineModuleInfo.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/AMDGPU/AMDGPUMachineModuleInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPUMachineModuleInfo.h - copied unchanged from r327986, head/contrib/llvm/lib/Target/AMDGPU/AMDGPUMachineModuleInfo.h user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPUOpenCLEnqueuedBlockLowering.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/AMDGPU/AMDGPUOpenCLEnqueuedBlockLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPURewriteOutArguments.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/AMDGPU/AMDGPURewriteOutArguments.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/GCNILPSched.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/AMDGPU/GCNILPSched.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/GCNProcessors.td - copied unchanged from r327986, head/contrib/llvm/lib/Target/AMDGPU/GCNProcessors.td user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUHSAMetadataStreamer.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUHSAMetadataStreamer.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUHSAMetadataStreamer.h - copied unchanged from r327986, head/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUHSAMetadataStreamer.h user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/R600Processors.td - copied unchanged from r327986, head/contrib/llvm/lib/Target/AMDGPU/R600Processors.td user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/SIFixWWMLiveness.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/AMDGPU/SIFixWWMLiveness.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/SIMemoryLegalizer.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/AMDGPU/SIMemoryLegalizer.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/SIOptimizeExecMaskingPreRA.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/AMDGPU/SIOptimizeExecMaskingPreRA.cpp user/jeff/numa/contrib/llvm/lib/Target/ARC/ - copied from r327986, head/contrib/llvm/lib/Target/ARC/ user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMSystemRegister.td - copied unchanged from r327986, head/contrib/llvm/lib/Target/ARM/ARMSystemRegister.td user/jeff/numa/contrib/llvm/lib/Target/ARM/Utils/ - copied from r327986, head/contrib/llvm/lib/Target/ARM/Utils/ user/jeff/numa/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCELFStreamer.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCELFStreamer.cpp user/jeff/numa/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCELFStreamer.h - copied unchanged from r327986, head/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCELFStreamer.h user/jeff/numa/contrib/llvm/lib/Target/BPF/AsmParser/ - copied from r327986, head/contrib/llvm/lib/Target/BPF/AsmParser/ user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonConstExtenders.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/Hexagon/HexagonConstExtenders.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonGatherPacketize.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/Hexagon/HexagonGatherPacketize.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.h - copied unchanged from r327986, head/contrib/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.h user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/Hexagon/HexagonISelDAGToDAGHVX.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/Hexagon/HexagonISelLoweringHVX.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonInstrFormatsV65.td - copied unchanged from r327986, head/contrib/llvm/lib/Target/Hexagon/HexagonInstrFormatsV65.td user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonMapAsm2IntrinV65.gen.td - copied unchanged from r327986, head/contrib/llvm/lib/Target/Hexagon/HexagonMapAsm2IntrinV65.gen.td user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonPatternsV65.td - copied unchanged from r327986, head/contrib/llvm/lib/Target/Hexagon/HexagonPatternsV65.td user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV65.td - copied unchanged from r327986, head/contrib/llvm/lib/Target/Hexagon/HexagonScheduleV65.td user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonVectorLoopCarriedReuse.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/Hexagon/HexagonVectorLoopCarriedReuse.cpp user/jeff/numa/contrib/llvm/lib/Target/Nios2/InstPrinter/ - copied from r327986, head/contrib/llvm/lib/Target/Nios2/InstPrinter/ user/jeff/numa/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2AsmBackend.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2AsmBackend.cpp user/jeff/numa/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2AsmBackend.h - copied unchanged from r327986, head/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2AsmBackend.h user/jeff/numa/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2BaseInfo.h - copied unchanged from r327986, head/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2BaseInfo.h user/jeff/numa/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2ELFObjectWriter.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2ELFObjectWriter.cpp user/jeff/numa/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2FixupKinds.h - copied unchanged from r327986, head/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2FixupKinds.h user/jeff/numa/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2MCAsmInfo.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2MCAsmInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2MCAsmInfo.h - copied unchanged from r327986, head/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2MCAsmInfo.h user/jeff/numa/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2MCExpr.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2MCExpr.cpp user/jeff/numa/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2MCExpr.h - copied unchanged from r327986, head/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2MCExpr.h user/jeff/numa/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2TargetStreamer.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2TargetStreamer.cpp user/jeff/numa/contrib/llvm/lib/Target/Nios2/Nios2AsmPrinter.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/Nios2/Nios2AsmPrinter.cpp user/jeff/numa/contrib/llvm/lib/Target/Nios2/Nios2CallingConv.td - copied unchanged from r327986, head/contrib/llvm/lib/Target/Nios2/Nios2CallingConv.td user/jeff/numa/contrib/llvm/lib/Target/Nios2/Nios2FrameLowering.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/Nios2/Nios2FrameLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/Nios2/Nios2FrameLowering.h - copied unchanged from r327986, head/contrib/llvm/lib/Target/Nios2/Nios2FrameLowering.h user/jeff/numa/contrib/llvm/lib/Target/Nios2/Nios2ISelDAGToDAG.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/Nios2/Nios2ISelDAGToDAG.cpp user/jeff/numa/contrib/llvm/lib/Target/Nios2/Nios2ISelLowering.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/Nios2/Nios2ISelLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/Nios2/Nios2ISelLowering.h - copied unchanged from r327986, head/contrib/llvm/lib/Target/Nios2/Nios2ISelLowering.h user/jeff/numa/contrib/llvm/lib/Target/Nios2/Nios2InstrInfo.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/Nios2/Nios2InstrInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/Nios2/Nios2InstrInfo.h - copied unchanged from r327986, head/contrib/llvm/lib/Target/Nios2/Nios2InstrInfo.h user/jeff/numa/contrib/llvm/lib/Target/Nios2/Nios2MCInstLower.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/Nios2/Nios2MCInstLower.cpp user/jeff/numa/contrib/llvm/lib/Target/Nios2/Nios2MachineFunction.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/Nios2/Nios2MachineFunction.cpp user/jeff/numa/contrib/llvm/lib/Target/Nios2/Nios2MachineFunction.h - copied unchanged from r327986, head/contrib/llvm/lib/Target/Nios2/Nios2MachineFunction.h user/jeff/numa/contrib/llvm/lib/Target/Nios2/Nios2RegisterInfo.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/Nios2/Nios2RegisterInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/Nios2/Nios2RegisterInfo.h - copied unchanged from r327986, head/contrib/llvm/lib/Target/Nios2/Nios2RegisterInfo.h user/jeff/numa/contrib/llvm/lib/Target/Nios2/Nios2Schedule.td - copied unchanged from r327986, head/contrib/llvm/lib/Target/Nios2/Nios2Schedule.td user/jeff/numa/contrib/llvm/lib/Target/Nios2/Nios2Subtarget.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/Nios2/Nios2Subtarget.cpp user/jeff/numa/contrib/llvm/lib/Target/Nios2/Nios2Subtarget.h - copied unchanged from r327986, head/contrib/llvm/lib/Target/Nios2/Nios2Subtarget.h user/jeff/numa/contrib/llvm/lib/Target/Nios2/Nios2TargetObjectFile.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/Nios2/Nios2TargetObjectFile.cpp user/jeff/numa/contrib/llvm/lib/Target/Nios2/Nios2TargetObjectFile.h - copied unchanged from r327986, head/contrib/llvm/lib/Target/Nios2/Nios2TargetObjectFile.h user/jeff/numa/contrib/llvm/lib/Target/Nios2/Nios2TargetStreamer.h - copied unchanged from r327986, head/contrib/llvm/lib/Target/Nios2/Nios2TargetStreamer.h user/jeff/numa/contrib/llvm/lib/Target/PowerPC/PPCBranchCoalescing.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/PowerPC/PPCBranchCoalescing.cpp user/jeff/numa/contrib/llvm/lib/Target/PowerPC/PPCMachineBasicBlockUtils.h - copied unchanged from r327986, head/contrib/llvm/lib/Target/PowerPC/PPCMachineBasicBlockUtils.h user/jeff/numa/contrib/llvm/lib/Target/PowerPC/PPCPreEmitPeephole.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/PowerPC/PPCPreEmitPeephole.cpp user/jeff/numa/contrib/llvm/lib/Target/PowerPC/PPCReduceCRLogicals.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/PowerPC/PPCReduceCRLogicals.cpp user/jeff/numa/contrib/llvm/lib/Target/RISCV/AsmParser/ - copied from r327986, head/contrib/llvm/lib/Target/RISCV/AsmParser/ user/jeff/numa/contrib/llvm/lib/Target/RISCV/Disassembler/ - copied from r327986, head/contrib/llvm/lib/Target/RISCV/Disassembler/ user/jeff/numa/contrib/llvm/lib/Target/RISCV/InstPrinter/ - copied from r327986, head/contrib/llvm/lib/Target/RISCV/InstPrinter/ user/jeff/numa/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.h - copied unchanged from r327986, head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVBaseInfo.h user/jeff/numa/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVFixupKinds.h - copied unchanged from r327986, head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVFixupKinds.h user/jeff/numa/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.cpp user/jeff/numa/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.h - copied unchanged from r327986, head/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCExpr.h user/jeff/numa/contrib/llvm/lib/Target/RISCV/RISCV.h - copied unchanged from r327986, head/contrib/llvm/lib/Target/RISCV/RISCV.h user/jeff/numa/contrib/llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/RISCV/RISCVAsmPrinter.cpp user/jeff/numa/contrib/llvm/lib/Target/RISCV/RISCVCallingConv.td - copied unchanged from r327986, head/contrib/llvm/lib/Target/RISCV/RISCVCallingConv.td user/jeff/numa/contrib/llvm/lib/Target/RISCV/RISCVFrameLowering.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/RISCV/RISCVFrameLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/RISCV/RISCVFrameLowering.h - copied unchanged from r327986, head/contrib/llvm/lib/Target/RISCV/RISCVFrameLowering.h user/jeff/numa/contrib/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/RISCV/RISCVISelDAGToDAG.cpp user/jeff/numa/contrib/llvm/lib/Target/RISCV/RISCVISelLowering.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/RISCV/RISCVISelLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/RISCV/RISCVISelLowering.h - copied unchanged from r327986, head/contrib/llvm/lib/Target/RISCV/RISCVISelLowering.h user/jeff/numa/contrib/llvm/lib/Target/RISCV/RISCVInstrFormatsC.td - copied unchanged from r327986, head/contrib/llvm/lib/Target/RISCV/RISCVInstrFormatsC.td user/jeff/numa/contrib/llvm/lib/Target/RISCV/RISCVInstrInfo.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/RISCV/RISCVInstrInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/RISCV/RISCVInstrInfo.h - copied unchanged from r327986, head/contrib/llvm/lib/Target/RISCV/RISCVInstrInfo.h user/jeff/numa/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoA.td - copied unchanged from r327986, head/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoA.td user/jeff/numa/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoC.td - copied unchanged from r327986, head/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoC.td user/jeff/numa/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoD.td - copied unchanged from r327986, head/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoD.td user/jeff/numa/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoF.td - copied unchanged from r327986, head/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoF.td user/jeff/numa/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoM.td - copied unchanged from r327986, head/contrib/llvm/lib/Target/RISCV/RISCVInstrInfoM.td user/jeff/numa/contrib/llvm/lib/Target/RISCV/RISCVMCInstLower.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/RISCV/RISCVMCInstLower.cpp user/jeff/numa/contrib/llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/RISCV/RISCVRegisterInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/RISCV/RISCVRegisterInfo.h - copied unchanged from r327986, head/contrib/llvm/lib/Target/RISCV/RISCVRegisterInfo.h user/jeff/numa/contrib/llvm/lib/Target/RISCV/RISCVSubtarget.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/RISCV/RISCVSubtarget.cpp user/jeff/numa/contrib/llvm/lib/Target/RISCV/RISCVSubtarget.h - copied unchanged from r327986, head/contrib/llvm/lib/Target/RISCV/RISCVSubtarget.h user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/WebAssemblyLowerGlobalDtors.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/WebAssembly/WebAssemblyLowerGlobalDtors.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/MCTargetDesc/X86TargetStreamer.h - copied unchanged from r327986, head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86TargetStreamer.h user/jeff/numa/contrib/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFTargetStreamer.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFTargetStreamer.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/X86DomainReassignment.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Target/X86/X86DomainReassignment.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/X86InstrVecCompiler.td - copied unchanged from r327986, head/contrib/llvm/lib/Target/X86/X86InstrVecCompiler.td user/jeff/numa/contrib/llvm/lib/Target/X86/X86SchedBroadwell.td - copied unchanged from r327986, head/contrib/llvm/lib/Target/X86/X86SchedBroadwell.td user/jeff/numa/contrib/llvm/lib/Target/X86/X86SchedSkylakeClient.td - copied unchanged from r327986, head/contrib/llvm/lib/Target/X86/X86SchedSkylakeClient.td user/jeff/numa/contrib/llvm/lib/Target/X86/X86SchedSkylakeServer.td - copied unchanged from r327986, head/contrib/llvm/lib/Target/X86/X86SchedSkylakeServer.td user/jeff/numa/contrib/llvm/lib/Transforms/IPO/CalledValuePropagation.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Transforms/IPO/CalledValuePropagation.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/DivRemPairs.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Transforms/Scalar/DivRemPairs.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/MergeICmps.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Transforms/Scalar/MergeICmps.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/SpeculateAroundPHIs.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Transforms/Scalar/SpeculateAroundPHIs.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Utils/CallPromotionUtils.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Transforms/Utils/CallPromotionUtils.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Utils/EntryExitInstrumenter.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Transforms/Utils/EntryExitInstrumenter.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Vectorize/VPlan.cpp - copied unchanged from r327986, head/contrib/llvm/lib/Transforms/Vectorize/VPlan.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Vectorize/VPlan.h - copied unchanged from r327986, head/contrib/llvm/lib/Transforms/Vectorize/VPlan.h user/jeff/numa/contrib/llvm/lib/Transforms/Vectorize/VPlanBuilder.h - copied unchanged from r327986, head/contrib/llvm/lib/Transforms/Vectorize/VPlanBuilder.h user/jeff/numa/contrib/llvm/lib/Transforms/Vectorize/VPlanValue.h - copied unchanged from r327986, head/contrib/llvm/lib/Transforms/Vectorize/VPlanValue.h user/jeff/numa/contrib/llvm/lib/WindowsManifest/ - copied from r327986, head/contrib/llvm/lib/WindowsManifest/ user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/DataCollection.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/include/clang/AST/DataCollection.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/LexicallyOrderedRecursiveASTVisitor.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/include/clang/AST/LexicallyOrderedRecursiveASTVisitor.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/QualTypeNames.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/include/clang/AST/QualTypeNames.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/StmtDataCollectors.td - copied unchanged from r327986, head/contrib/llvm/tools/clang/include/clang/AST/StmtDataCollectors.td user/jeff/numa/contrib/llvm/tools/clang/include/clang/Analysis/AnalysisDeclContext.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/include/clang/Analysis/AnalysisDeclContext.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Analysis/BodyFarm.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/include/clang/Analysis/BodyFarm.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/AlignedAllocation.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/include/clang/Basic/AlignedAllocation.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCrossTUKinds.td - copied unchanged from r327986, head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCrossTUKinds.td user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticError.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticError.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticRefactoringKinds.td - copied unchanged from r327986, head/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticRefactoringKinds.td user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/SanitizerSpecialCaseList.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/include/clang/Basic/SanitizerSpecialCaseList.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/SyncScope.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/include/clang/Basic/SyncScope.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/X86Target.def - copied unchanged from r327986, head/contrib/llvm/tools/clang/include/clang/Basic/X86Target.def user/jeff/numa/contrib/llvm/tools/clang/include/clang/CrossTU/ - copied from r327986, head/contrib/llvm/tools/clang/include/clang/CrossTU/ user/jeff/numa/contrib/llvm/tools/clang/include/clang/Lex/VariadicMacroSupport.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/include/clang/Lex/VariadicMacroSupport.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitors.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitors.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/LoopUnrolling.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/LoopUnrolling.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Tooling/ASTDiff/ - copied from r327986, head/contrib/llvm/tools/clang/include/clang/Tooling/ASTDiff/ user/jeff/numa/contrib/llvm/tools/clang/include/clang/Tooling/Execution.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/include/clang/Tooling/Execution.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/ASTSelection.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/ASTSelection.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Extract/ - copied from r327986, head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Extract/ user/jeff/numa/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringAction.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringAction.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringActionRule.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringActionRule.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringActionRuleRequirements.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringActionRuleRequirements.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringActionRules.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringActionRules.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringActionRulesInternal.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringActionRulesInternal.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringDiagnostic.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringDiagnostic.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringOption.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringOption.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringOptionVisitor.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringOptionVisitor.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringOptions.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringOptions.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringResultConsumer.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringResultConsumer.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringRuleContext.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RefactoringRuleContext.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Rename/SymbolName.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Rename/SymbolName.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Rename/SymbolOccurrences.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Rename/SymbolOccurrences.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Tooling/StandaloneExecution.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/include/clang/Tooling/StandaloneExecution.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Tooling/ToolExecutorPluginRegistry.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/include/clang/Tooling/ToolExecutorPluginRegistry.h user/jeff/numa/contrib/llvm/tools/clang/lib/AST/DataCollection.cpp - copied unchanged from r327986, head/contrib/llvm/tools/clang/lib/AST/DataCollection.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/Linkage.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/lib/AST/Linkage.h user/jeff/numa/contrib/llvm/tools/clang/lib/AST/QualTypeNames.cpp - copied unchanged from r327986, head/contrib/llvm/tools/clang/lib/AST/QualTypeNames.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Basic/SanitizerSpecialCaseList.cpp - copied unchanged from r327986, head/contrib/llvm/tools/clang/lib/Basic/SanitizerSpecialCaseList.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Basic/Targets/ - copied from r327986, head/contrib/llvm/tools/clang/lib/Basic/Targets/ user/jeff/numa/contrib/llvm/tools/clang/lib/Basic/Targets.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/lib/Basic/Targets.h user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/ConstantEmitter.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/lib/CodeGen/ConstantEmitter.h user/jeff/numa/contrib/llvm/tools/clang/lib/CrossTU/ - copied from r327986, head/contrib/llvm/tools/clang/lib/CrossTU/ user/jeff/numa/contrib/llvm/tools/clang/lib/Format/FormatInternal.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/lib/Format/FormatInternal.h user/jeff/numa/contrib/llvm/tools/clang/lib/Headers/arm64intr.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/lib/Headers/arm64intr.h user/jeff/numa/contrib/llvm/tools/clang/lib/Headers/avx512bitalgintrin.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/lib/Headers/avx512bitalgintrin.h user/jeff/numa/contrib/llvm/tools/clang/lib/Headers/avx512vbmi2intrin.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/lib/Headers/avx512vbmi2intrin.h user/jeff/numa/contrib/llvm/tools/clang/lib/Headers/avx512vlbitalgintrin.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/lib/Headers/avx512vlbitalgintrin.h user/jeff/numa/contrib/llvm/tools/clang/lib/Headers/avx512vlvbmi2intrin.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/lib/Headers/avx512vlvbmi2intrin.h user/jeff/numa/contrib/llvm/tools/clang/lib/Headers/avx512vlvnniintrin.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/lib/Headers/avx512vlvnniintrin.h user/jeff/numa/contrib/llvm/tools/clang/lib/Headers/avx512vnniintrin.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/lib/Headers/avx512vnniintrin.h user/jeff/numa/contrib/llvm/tools/clang/lib/Headers/avx512vpopcntdqvlintrin.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/lib/Headers/avx512vpopcntdqvlintrin.h user/jeff/numa/contrib/llvm/tools/clang/lib/Headers/cetintrin.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/lib/Headers/cetintrin.h user/jeff/numa/contrib/llvm/tools/clang/lib/Headers/clwbintrin.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/lib/Headers/clwbintrin.h user/jeff/numa/contrib/llvm/tools/clang/lib/Headers/gfniintrin.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/lib/Headers/gfniintrin.h user/jeff/numa/contrib/llvm/tools/clang/lib/Headers/vaesintrin.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/lib/Headers/vaesintrin.h user/jeff/numa/contrib/llvm/tools/clang/lib/Headers/vpclmulqdqintrin.h - copied unchanged from r327986, head/contrib/llvm/tools/clang/lib/Headers/vpclmulqdqintrin.h user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DeleteWithNonVirtualDtorChecker.cpp - copied unchanged from r327986, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DeleteWithNonVirtualDtorChecker.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NonnullGlobalConstantsChecker.cpp - copied unchanged from r327986, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/NonnullGlobalConstantsChecker.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/LoopUnrolling.cpp - copied unchanged from r327986, head/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/LoopUnrolling.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Tooling/ASTDiff/ - copied from r327986, head/contrib/llvm/tools/clang/lib/Tooling/ASTDiff/ user/jeff/numa/contrib/llvm/tools/clang/lib/Tooling/Execution.cpp - copied unchanged from r327986, head/contrib/llvm/tools/clang/lib/Tooling/Execution.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Tooling/Refactoring/ASTSelection.cpp - copied unchanged from r327986, head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/ASTSelection.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Tooling/Refactoring/ASTSelectionRequirements.cpp - copied unchanged from r327986, head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/ASTSelectionRequirements.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Extract/ - copied from r327986, head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Extract/ user/jeff/numa/contrib/llvm/tools/clang/lib/Tooling/Refactoring/RefactoringActions.cpp - copied unchanged from r327986, head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/RefactoringActions.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Rename/SymbolOccurrences.cpp - copied unchanged from r327986, head/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Rename/SymbolOccurrences.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Tooling/StandaloneExecution.cpp - copied unchanged from r327986, head/contrib/llvm/tools/clang/lib/Tooling/StandaloneExecution.cpp user/jeff/numa/contrib/llvm/tools/clang/utils/TableGen/ClangDataCollectorsEmitter.cpp - copied unchanged from r327986, head/contrib/llvm/tools/clang/utils/TableGen/ClangDataCollectorsEmitter.cpp user/jeff/numa/contrib/llvm/tools/lld/COFF/MinGW.cpp - copied unchanged from r327986, head/contrib/llvm/tools/lld/COFF/MinGW.cpp user/jeff/numa/contrib/llvm/tools/lld/COFF/MinGW.h - copied unchanged from r327986, head/contrib/llvm/tools/lld/COFF/MinGW.h user/jeff/numa/contrib/llvm/tools/lld/Common/ - copied from r327986, head/contrib/llvm/tools/lld/Common/ user/jeff/numa/contrib/llvm/tools/lld/ELF/AArch64ErrataFix.cpp - copied unchanged from r327986, head/contrib/llvm/tools/lld/ELF/AArch64ErrataFix.cpp user/jeff/numa/contrib/llvm/tools/lld/ELF/AArch64ErrataFix.h - copied unchanged from r327986, head/contrib/llvm/tools/lld/ELF/AArch64ErrataFix.h user/jeff/numa/contrib/llvm/tools/lld/ELF/Bits.h - copied unchanged from r327986, head/contrib/llvm/tools/lld/ELF/Bits.h user/jeff/numa/contrib/llvm/tools/lld/include/lld/Common/ - copied from r327986, head/contrib/llvm/tools/lld/include/lld/Common/ user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/API/SBBreakpointName.h - copied unchanged from r327986, head/contrib/llvm/tools/lldb/include/lldb/API/SBBreakpointName.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/API/SBProcessInfo.h - copied unchanged from r327986, head/contrib/llvm/tools/lldb/include/lldb/API/SBProcessInfo.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointName.h - copied unchanged from r327986, head/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointName.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Core/Architecture.h - copied unchanged from r327986, head/contrib/llvm/tools/lldb/include/lldb/Core/Architecture.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Host/TaskPool.h - copied unchanged from r327986, head/contrib/llvm/tools/lldb/include/lldb/Host/TaskPool.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Utility/ArchSpec.h - copied unchanged from r327986, head/contrib/llvm/tools/lldb/include/lldb/Utility/ArchSpec.h user/jeff/numa/contrib/llvm/tools/lldb/source/API/SBBreakpointName.cpp - copied unchanged from r327986, head/contrib/llvm/tools/lldb/source/API/SBBreakpointName.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/API/SBBreakpointOptionCommon.cpp - copied unchanged from r327986, head/contrib/llvm/tools/lldb/source/API/SBBreakpointOptionCommon.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/API/SBBreakpointOptionCommon.h - copied unchanged from r327986, head/contrib/llvm/tools/lldb/source/API/SBBreakpointOptionCommon.h user/jeff/numa/contrib/llvm/tools/lldb/source/API/SBProcessInfo.cpp - copied unchanged from r327986, head/contrib/llvm/tools/lldb/source/API/SBProcessInfo.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointName.cpp - copied unchanged from r327986, head/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointName.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Host/common/TaskPool.cpp - copied unchanged from r327986, head/contrib/llvm/tools/lldb/source/Host/common/TaskPool.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Architecture/ - copied from r327986, head/contrib/llvm/tools/lldb/source/Plugins/Architecture/ user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxBitset.cpp - copied unchanged from r327986, head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxBitset.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp - copied unchanged from r327986, head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxQueue.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxTuple.cpp - copied unchanged from r327986, head/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxTuple.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_ppc64le.cpp - copied unchanged from r327986, head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_ppc64le.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_ppc64le.h - copied unchanged from r327986, head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_ppc64le.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_ppc64le.cpp - copied unchanged from r327986, head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_ppc64le.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_ppc64le.h - copied unchanged from r327986, head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfoPOSIX_ppc64le.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_ppc64le.h - copied unchanged from r327986, head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_ppc64le.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-ppc64le-register-enums.h - copied unchanged from r327986, head/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/lldb-ppc64le-register-enums.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_ppc64le.cpp - copied unchanged from r327986, head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_ppc64le.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_ppc64le.h - copied unchanged from r327986, head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_ppc64le.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterUtilities.cpp - copied unchanged from r327986, head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterUtilities.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterUtilities.h - copied unchanged from r327986, head/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterUtilities.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwoDwp.cpp - copied unchanged from r327986, head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwoDwp.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwoDwp.h - copied unchanged from r327986, head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwoDwp.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwp.cpp - copied unchanged from r327986, head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwp.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwp.h - copied unchanged from r327986, head/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwp.h user/jeff/numa/contrib/llvm/tools/lldb/source/Utility/ArchSpec.cpp - copied unchanged from r327986, head/contrib/llvm/tools/lldb/source/Utility/ArchSpec.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Utility/PPC64LE_DWARF_Registers.h - copied unchanged from r327986, head/contrib/llvm/tools/lldb/source/Utility/PPC64LE_DWARF_Registers.h user/jeff/numa/contrib/llvm/tools/lldb/source/Utility/PPC64LE_ehframe_Registers.h - copied unchanged from r327986, head/contrib/llvm/tools/lldb/source/Utility/PPC64LE_ehframe_Registers.h user/jeff/numa/contrib/llvm/tools/llvm-dwarfdump/Statistics.cpp - copied unchanged from r327986, head/contrib/llvm/tools/llvm-dwarfdump/Statistics.cpp user/jeff/numa/contrib/llvm/tools/llvm-objcopy/ - copied from r327986, head/contrib/llvm/tools/llvm-objcopy/ user/jeff/numa/contrib/llvm/tools/llvm-pdbutil/InputFile.cpp - copied unchanged from r327986, head/contrib/llvm/tools/llvm-pdbutil/InputFile.cpp user/jeff/numa/contrib/llvm/tools/llvm-pdbutil/InputFile.h - copied unchanged from r327986, head/contrib/llvm/tools/llvm-pdbutil/InputFile.h user/jeff/numa/contrib/llvm/tools/llvm-readobj/WindowsResourceDumper.cpp - copied unchanged from r327986, head/contrib/llvm/tools/llvm-readobj/WindowsResourceDumper.cpp user/jeff/numa/contrib/llvm/tools/llvm-readobj/WindowsResourceDumper.h - copied unchanged from r327986, head/contrib/llvm/tools/llvm-readobj/WindowsResourceDumper.h user/jeff/numa/contrib/llvm/tools/llvm-xray/trie-node.h - copied unchanged from r327986, head/contrib/llvm/tools/llvm-xray/trie-node.h user/jeff/numa/contrib/llvm/tools/llvm-xray/xray-stacks.cc - copied unchanged from r327986, head/contrib/llvm/tools/llvm-xray/xray-stacks.cc user/jeff/numa/contrib/llvm/tools/opt/Debugify.cpp - copied unchanged from r327986, head/contrib/llvm/tools/opt/Debugify.cpp user/jeff/numa/contrib/llvm/utils/TableGen/CodeGenHwModes.cpp - copied unchanged from r327986, head/contrib/llvm/utils/TableGen/CodeGenHwModes.cpp user/jeff/numa/contrib/llvm/utils/TableGen/CodeGenHwModes.h - copied unchanged from r327986, head/contrib/llvm/utils/TableGen/CodeGenHwModes.h user/jeff/numa/contrib/llvm/utils/TableGen/InfoByHwMode.cpp - copied unchanged from r327986, head/contrib/llvm/utils/TableGen/InfoByHwMode.cpp user/jeff/numa/contrib/llvm/utils/TableGen/InfoByHwMode.h - copied unchanged from r327986, head/contrib/llvm/utils/TableGen/InfoByHwMode.h user/jeff/numa/contrib/llvm/utils/TableGen/InstrDocsEmitter.cpp - copied unchanged from r327986, head/contrib/llvm/utils/TableGen/InstrDocsEmitter.cpp user/jeff/numa/contrib/llvm/utils/TableGen/SDNodeProperties.cpp - copied unchanged from r327986, head/contrib/llvm/utils/TableGen/SDNodeProperties.cpp user/jeff/numa/contrib/llvm/utils/TableGen/SDNodeProperties.h - copied unchanged from r327986, head/contrib/llvm/utils/TableGen/SDNodeProperties.h user/jeff/numa/contrib/llvm/utils/TableGen/X86FoldTablesEmitter.cpp - copied unchanged from r327986, head/contrib/llvm/utils/TableGen/X86FoldTablesEmitter.cpp user/jeff/numa/lib/clang/include/lld/Common/ - copied from r327986, head/lib/clang/include/lld/Common/ user/jeff/numa/lib/libclang_rt/tsan/ - copied from r327986, head/lib/libclang_rt/tsan/ user/jeff/numa/lib/libclang_rt/tsan_cxx/ - copied from r327986, head/lib/libclang_rt/tsan_cxx/ user/jeff/numa/lib/libclang_rt/ubsan_minimal/ - copied from r327986, head/lib/libclang_rt/ubsan_minimal/ user/jeff/numa/lib/libsysdecode/sysdecode_sctp_sinfo_flags.3 - copied unchanged from r327986, head/lib/libsysdecode/sysdecode_sctp_sinfo_flags.3 user/jeff/numa/share/man/man4/aw_syscon.4 - copied unchanged from r327986, head/share/man/man4/aw_syscon.4 user/jeff/numa/sys/arm/allwinner/aw_syscon.c - copied unchanged from r327986, head/sys/arm/allwinner/aw_syscon.c user/jeff/numa/sys/arm/broadcom/bcm2835/bcm2835_pwm.c - copied unchanged from r327986, head/sys/arm/broadcom/bcm2835/bcm2835_pwm.c user/jeff/numa/sys/dev/extres/syscon/syscon_generic.h - copied unchanged from r327986, head/sys/dev/extres/syscon/syscon_generic.h user/jeff/numa/sys/modules/rpi_pwm/ - copied from r327986, head/sys/modules/rpi_pwm/ user/jeff/numa/sys/powerpc/mpc85xx/mpc85xx_cache.c - copied unchanged from r327986, head/sys/powerpc/mpc85xx/mpc85xx_cache.c user/jeff/numa/usr.bin/clang/llvm-objcopy/ - copied from r327986, head/usr.bin/clang/llvm-objcopy/ user/jeff/numa/usr.bin/clang/llvm-pdbutil/llvm-pdbutil.1 - copied unchanged from r327986, head/usr.bin/clang/llvm-pdbutil/llvm-pdbutil.1 Deleted: user/jeff/numa/contrib/compiler-rt/lib/scudo/scudo_tls.h user/jeff/numa/contrib/compiler-rt/lib/scudo/scudo_tls_android.cpp user/jeff/numa/contrib/compiler-rt/lib/scudo/scudo_tls_android.inc user/jeff/numa/contrib/compiler-rt/lib/scudo/scudo_tls_context_android.inc user/jeff/numa/contrib/compiler-rt/lib/scudo/scudo_tls_context_linux.inc user/jeff/numa/contrib/compiler-rt/lib/scudo/scudo_tls_linux.cpp user/jeff/numa/contrib/compiler-rt/lib/scudo/scudo_tls_linux.inc user/jeff/numa/contrib/compiler-rt/lib/tsan/rtl/tsan_vector.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/OptimizationDiagnosticInfo.h user/jeff/numa/contrib/llvm/include/llvm/BinaryFormat/WasmRelocs/WebAssembly.def user/jeff/numa/contrib/llvm/include/llvm/CodeGen/CommandFlags.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/GlobalISel/GISelAccessor.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/LiveIntervalAnalysis.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/LiveStackAnalysis.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeName.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeRecordBuilder.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeSerializer.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeTableBuilder.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/MSF/MSFStreamLayout.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/PDB/Native/PublicsStreamBuilder.h user/jeff/numa/contrib/llvm/include/llvm/MC/MCTargetOptionsCommandFlags.h user/jeff/numa/contrib/llvm/include/llvm/Support/AMDGPUCodeObjectMetadata.h user/jeff/numa/contrib/llvm/include/llvm/Support/GCOV.h user/jeff/numa/contrib/llvm/include/llvm/Target/CostTable.h user/jeff/numa/contrib/llvm/include/llvm/Target/TargetCallingConv.h user/jeff/numa/contrib/llvm/include/llvm/Target/TargetFrameLowering.h user/jeff/numa/contrib/llvm/include/llvm/Target/TargetInstrInfo.h user/jeff/numa/contrib/llvm/include/llvm/Target/TargetLowering.h user/jeff/numa/contrib/llvm/include/llvm/Target/TargetLoweringObjectFile.h user/jeff/numa/contrib/llvm/include/llvm/Target/TargetOpcodes.def user/jeff/numa/contrib/llvm/include/llvm/Target/TargetOpcodes.h user/jeff/numa/contrib/llvm/include/llvm/Target/TargetRegisterInfo.h user/jeff/numa/contrib/llvm/include/llvm/Target/TargetSubtargetInfo.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Utils/CmpInstAnalysis.h user/jeff/numa/contrib/llvm/lib/Analysis/OptimizationDiagnosticInfo.cpp user/jeff/numa/contrib/llvm/lib/Analysis/SparsePropagation.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/BranchCoalescing.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/CountingFunctionInserter.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/LiveStackAnalysis.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/CodeView/TypeName.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/CodeView/TypeSerializer.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/PDB/Native/GSI.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/PDB/Native/GSI.h user/jeff/numa/contrib/llvm/lib/DebugInfo/PDB/Native/PublicsStreamBuilder.cpp user/jeff/numa/contrib/llvm/lib/IR/GCOV.cpp user/jeff/numa/contrib/llvm/lib/Support/AMDGPUCodeObjectMetadata.cpp user/jeff/numa/contrib/llvm/lib/Support/regcclass.h user/jeff/numa/contrib/llvm/lib/Support/regcname.h user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64VectorByElementOpt.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/CIInstructions.td user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUCodeObjectMetadataStreamer.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUCodeObjectMetadataStreamer.h user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/SIFixControlFlowLiveIntervals.cpp user/jeff/numa/contrib/llvm/lib/Target/AVR/AVRInstrumentFunctions.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonIntrinsicsDerived.td user/jeff/numa/contrib/llvm/lib/Target/Mips/MicroMips64r6InstrFormats.td user/jeff/numa/contrib/llvm/lib/Target/Mips/MicroMips64r6InstrInfo.td user/jeff/numa/contrib/llvm/lib/Target/NVPTX/NVPTXVector.td user/jeff/numa/contrib/llvm/lib/Target/PowerPC/p9-instrs.txt user/jeff/numa/contrib/llvm/lib/Transforms/Utils/CmpInstAnalysis.cpp user/jeff/numa/contrib/llvm/tools/clang/include/clang/Analysis/AnalysisContext.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporterVisitor.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Tooling/Core/QualTypeNames.h user/jeff/numa/contrib/llvm/tools/clang/lib/Analysis/BodyFarm.h user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/Bitrig.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/Bitrig.h user/jeff/numa/contrib/llvm/tools/clang/lib/Tooling/Core/QualTypeNames.cpp user/jeff/numa/contrib/llvm/tools/lld/COFF/Error.cpp user/jeff/numa/contrib/llvm/tools/lld/COFF/Error.h user/jeff/numa/contrib/llvm/tools/lld/COFF/Memory.h user/jeff/numa/contrib/llvm/tools/lld/ELF/Error.cpp user/jeff/numa/contrib/llvm/tools/lld/ELF/Error.h user/jeff/numa/contrib/llvm/tools/lld/ELF/Memory.h user/jeff/numa/contrib/llvm/tools/lld/ELF/Threads.h user/jeff/numa/contrib/llvm/tools/lld/include/lld/Config/ user/jeff/numa/contrib/llvm/tools/lld/include/lld/Core/LLVM.h user/jeff/numa/contrib/llvm/tools/lld/include/lld/Core/Reproduce.h user/jeff/numa/contrib/llvm/tools/lld/include/lld/Core/TargetOptionsCommandFlags.h user/jeff/numa/contrib/llvm/tools/lld/include/lld/Driver/ user/jeff/numa/contrib/llvm/tools/lld/lib/Config/ user/jeff/numa/contrib/llvm/tools/lld/lib/Core/Reproduce.cpp user/jeff/numa/contrib/llvm/tools/lld/lib/Core/TargetOptionsCommandFlags.cpp user/jeff/numa/contrib/llvm/tools/lld/utils/ user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Core/ArchSpec.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Utility/TaskPool.h user/jeff/numa/contrib/llvm/tools/lldb/source/Core/ArchSpec.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/ASan/CMakeLists.txt user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/MainThreadChecker/CMakeLists.txt user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/TSan/CMakeLists.txt user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/InstrumentationRuntime/UBSan/CMakeLists.txt user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Language/OCaml/CMakeLists.txt user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Platform/OpenBSD/CMakeLists.txt user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/CMakeLists.txt user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/CMakeLists.txt user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/StructuredData/CMakeLists.txt user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/StructuredData/DarwinLog/CMakeLists.txt user/jeff/numa/contrib/llvm/tools/lldb/source/Utility/TaskPool.cpp user/jeff/numa/contrib/llvm/tools/lldb/tools/intel-mpx/IntelMPXTablePlugin.cpp user/jeff/numa/contrib/llvm/tools/llvm-xray/xray-record-yaml.h user/jeff/numa/lib/clang/include/lld/Config/ user/jeff/numa/sys/dev/fdt/fdt_powerpc.c Modified: user/jeff/numa/ObsoleteFiles.inc user/jeff/numa/UPDATING user/jeff/numa/cddl/usr.sbin/dtrace/tests/tools/exclude.sh user/jeff/numa/contrib/compiler-rt/include/sanitizer/allocator_interface.h user/jeff/numa/contrib/compiler-rt/include/sanitizer/asan_interface.h user/jeff/numa/contrib/compiler-rt/include/sanitizer/common_interface_defs.h user/jeff/numa/contrib/compiler-rt/include/sanitizer/coverage_interface.h user/jeff/numa/contrib/compiler-rt/include/sanitizer/esan_interface.h user/jeff/numa/contrib/compiler-rt/include/sanitizer/lsan_interface.h user/jeff/numa/contrib/compiler-rt/include/sanitizer/msan_interface.h user/jeff/numa/contrib/compiler-rt/include/sanitizer/tsan_interface.h user/jeff/numa/contrib/compiler-rt/include/xray/xray_interface.h user/jeff/numa/contrib/compiler-rt/include/xray/xray_log_interface.h user/jeff/numa/contrib/compiler-rt/include/xray/xray_records.h user/jeff/numa/contrib/compiler-rt/lib/BlocksRuntime/Block.h user/jeff/numa/contrib/compiler-rt/lib/BlocksRuntime/Block_private.h user/jeff/numa/contrib/compiler-rt/lib/asan/asan_activation.cc user/jeff/numa/contrib/compiler-rt/lib/asan/asan_allocator.cc user/jeff/numa/contrib/compiler-rt/lib/asan/asan_allocator.h user/jeff/numa/contrib/compiler-rt/lib/asan/asan_descriptions.cc user/jeff/numa/contrib/compiler-rt/lib/asan/asan_descriptions.h user/jeff/numa/contrib/compiler-rt/lib/asan/asan_errors.cc user/jeff/numa/contrib/compiler-rt/lib/asan/asan_errors.h user/jeff/numa/contrib/compiler-rt/lib/asan/asan_fake_stack.cc user/jeff/numa/contrib/compiler-rt/lib/asan/asan_flags.cc user/jeff/numa/contrib/compiler-rt/lib/asan/asan_flags.inc user/jeff/numa/contrib/compiler-rt/lib/asan/asan_globals.cc user/jeff/numa/contrib/compiler-rt/lib/asan/asan_init_version.h user/jeff/numa/contrib/compiler-rt/lib/asan/asan_interceptors.cc user/jeff/numa/contrib/compiler-rt/lib/asan/asan_interceptors.h user/jeff/numa/contrib/compiler-rt/lib/asan/asan_internal.h user/jeff/numa/contrib/compiler-rt/lib/asan/asan_linux.cc user/jeff/numa/contrib/compiler-rt/lib/asan/asan_malloc_linux.cc user/jeff/numa/contrib/compiler-rt/lib/asan/asan_mapping.h user/jeff/numa/contrib/compiler-rt/lib/asan/asan_memory_profile.cc user/jeff/numa/contrib/compiler-rt/lib/asan/asan_new_delete.cc user/jeff/numa/contrib/compiler-rt/lib/asan/asan_poisoning.cc user/jeff/numa/contrib/compiler-rt/lib/asan/asan_poisoning.h user/jeff/numa/contrib/compiler-rt/lib/asan/asan_posix.cc user/jeff/numa/contrib/compiler-rt/lib/asan/asan_report.cc user/jeff/numa/contrib/compiler-rt/lib/asan/asan_report.h user/jeff/numa/contrib/compiler-rt/lib/asan/asan_rtl.cc user/jeff/numa/contrib/compiler-rt/lib/asan/asan_scariness_score.h user/jeff/numa/contrib/compiler-rt/lib/asan/asan_stack.h user/jeff/numa/contrib/compiler-rt/lib/asan/asan_thread.cc user/jeff/numa/contrib/compiler-rt/lib/asan/asan_thread.h user/jeff/numa/contrib/compiler-rt/lib/asan/asan_win.cc user/jeff/numa/contrib/compiler-rt/lib/builtins/adddf3.c user/jeff/numa/contrib/compiler-rt/lib/builtins/addsf3.c user/jeff/numa/contrib/compiler-rt/lib/builtins/arm/aeabi_cdcmp.S user/jeff/numa/contrib/compiler-rt/lib/builtins/arm/aeabi_cfcmp.S user/jeff/numa/contrib/compiler-rt/lib/builtins/arm/aeabi_idivmod.S user/jeff/numa/contrib/compiler-rt/lib/builtins/arm/aeabi_memcmp.S user/jeff/numa/contrib/compiler-rt/lib/builtins/arm/aeabi_memcpy.S user/jeff/numa/contrib/compiler-rt/lib/builtins/arm/aeabi_memmove.S user/jeff/numa/contrib/compiler-rt/lib/builtins/arm/aeabi_memset.S user/jeff/numa/contrib/compiler-rt/lib/builtins/arm/aeabi_uidivmod.S user/jeff/numa/contrib/compiler-rt/lib/builtins/arm/bswapdi2.S user/jeff/numa/contrib/compiler-rt/lib/builtins/arm/bswapsi2.S user/jeff/numa/contrib/compiler-rt/lib/builtins/arm/clzdi2.S user/jeff/numa/contrib/compiler-rt/lib/builtins/arm/clzsi2.S user/jeff/numa/contrib/compiler-rt/lib/builtins/arm/comparesf2.S user/jeff/numa/contrib/compiler-rt/lib/builtins/arm/divmodsi4.S user/jeff/numa/contrib/compiler-rt/lib/builtins/arm/divsi3.S user/jeff/numa/contrib/compiler-rt/lib/builtins/arm/modsi3.S user/jeff/numa/contrib/compiler-rt/lib/builtins/arm/udivmodsi4.S user/jeff/numa/contrib/compiler-rt/lib/builtins/arm/udivsi3.S user/jeff/numa/contrib/compiler-rt/lib/builtins/arm/umodsi3.S user/jeff/numa/contrib/compiler-rt/lib/builtins/ashldi3.c user/jeff/numa/contrib/compiler-rt/lib/builtins/ashrdi3.c user/jeff/numa/contrib/compiler-rt/lib/builtins/assembly.h user/jeff/numa/contrib/compiler-rt/lib/builtins/clear_cache.c user/jeff/numa/contrib/compiler-rt/lib/builtins/comparedf2.c user/jeff/numa/contrib/compiler-rt/lib/builtins/comparesf2.c user/jeff/numa/contrib/compiler-rt/lib/builtins/cpu_model.c user/jeff/numa/contrib/compiler-rt/lib/builtins/divdf3.c user/jeff/numa/contrib/compiler-rt/lib/builtins/divsf3.c user/jeff/numa/contrib/compiler-rt/lib/builtins/divsi3.c user/jeff/numa/contrib/compiler-rt/lib/builtins/emutls.c user/jeff/numa/contrib/compiler-rt/lib/builtins/enable_execute_stack.c user/jeff/numa/contrib/compiler-rt/lib/builtins/extendhfsf2.c user/jeff/numa/contrib/compiler-rt/lib/builtins/extendsfdf2.c user/jeff/numa/contrib/compiler-rt/lib/builtins/fixdfdi.c user/jeff/numa/contrib/compiler-rt/lib/builtins/fixdfsi.c user/jeff/numa/contrib/compiler-rt/lib/builtins/fixsfdi.c user/jeff/numa/contrib/compiler-rt/lib/builtins/fixsfsi.c user/jeff/numa/contrib/compiler-rt/lib/builtins/fixunsdfdi.c user/jeff/numa/contrib/compiler-rt/lib/builtins/fixunsdfsi.c user/jeff/numa/contrib/compiler-rt/lib/builtins/fixunssfdi.c user/jeff/numa/contrib/compiler-rt/lib/builtins/fixunssfsi.c user/jeff/numa/contrib/compiler-rt/lib/builtins/floatdidf.c user/jeff/numa/contrib/compiler-rt/lib/builtins/floatdisf.c user/jeff/numa/contrib/compiler-rt/lib/builtins/floatsidf.c user/jeff/numa/contrib/compiler-rt/lib/builtins/floatsisf.c user/jeff/numa/contrib/compiler-rt/lib/builtins/floatundidf.c user/jeff/numa/contrib/compiler-rt/lib/builtins/floatundisf.c user/jeff/numa/contrib/compiler-rt/lib/builtins/floatunsidf.c user/jeff/numa/contrib/compiler-rt/lib/builtins/floatunsisf.c user/jeff/numa/contrib/compiler-rt/lib/builtins/int_endianness.h user/jeff/numa/contrib/compiler-rt/lib/builtins/int_lib.h user/jeff/numa/contrib/compiler-rt/lib/builtins/lshrdi3.c user/jeff/numa/contrib/compiler-rt/lib/builtins/muldf3.c user/jeff/numa/contrib/compiler-rt/lib/builtins/muldi3.c user/jeff/numa/contrib/compiler-rt/lib/builtins/mulsf3.c user/jeff/numa/contrib/compiler-rt/lib/builtins/negdf2.c user/jeff/numa/contrib/compiler-rt/lib/builtins/negsf2.c user/jeff/numa/contrib/compiler-rt/lib/builtins/subdf3.c user/jeff/numa/contrib/compiler-rt/lib/builtins/subsf3.c user/jeff/numa/contrib/compiler-rt/lib/builtins/truncdfhf2.c user/jeff/numa/contrib/compiler-rt/lib/builtins/truncdfsf2.c user/jeff/numa/contrib/compiler-rt/lib/builtins/truncsfhf2.c user/jeff/numa/contrib/compiler-rt/lib/builtins/udivsi3.c user/jeff/numa/contrib/compiler-rt/lib/cfi/cfi.cc user/jeff/numa/contrib/compiler-rt/lib/cfi/cfi_blacklist.txt user/jeff/numa/contrib/compiler-rt/lib/dfsan/dfsan.cc user/jeff/numa/contrib/compiler-rt/lib/esan/esan_sideline.h user/jeff/numa/contrib/compiler-rt/lib/esan/esan_sideline_linux.cpp user/jeff/numa/contrib/compiler-rt/lib/esan/working_set_posix.cpp user/jeff/numa/contrib/compiler-rt/lib/interception/interception.h user/jeff/numa/contrib/compiler-rt/lib/interception/interception_linux.cc user/jeff/numa/contrib/compiler-rt/lib/interception/interception_linux.h user/jeff/numa/contrib/compiler-rt/lib/interception/interception_mac.cc user/jeff/numa/contrib/compiler-rt/lib/interception/interception_mac.h user/jeff/numa/contrib/compiler-rt/lib/interception/interception_type_test.cc user/jeff/numa/contrib/compiler-rt/lib/interception/interception_win.cc user/jeff/numa/contrib/compiler-rt/lib/interception/interception_win.h user/jeff/numa/contrib/compiler-rt/lib/lsan/lsan.cc user/jeff/numa/contrib/compiler-rt/lib/lsan/lsan.h user/jeff/numa/contrib/compiler-rt/lib/lsan/lsan_allocator.h user/jeff/numa/contrib/compiler-rt/lib/lsan/lsan_common.cc user/jeff/numa/contrib/compiler-rt/lib/lsan/lsan_common.h user/jeff/numa/contrib/compiler-rt/lib/lsan/lsan_common_linux.cc user/jeff/numa/contrib/compiler-rt/lib/lsan/lsan_common_mac.cc user/jeff/numa/contrib/compiler-rt/lib/lsan/lsan_interceptors.cc user/jeff/numa/contrib/compiler-rt/lib/lsan/weak_symbols.txt user/jeff/numa/contrib/compiler-rt/lib/msan/msan.cc user/jeff/numa/contrib/compiler-rt/lib/msan/msan.h user/jeff/numa/contrib/compiler-rt/lib/msan/msan_allocator.cc user/jeff/numa/contrib/compiler-rt/lib/msan/msan_interceptors.cc user/jeff/numa/contrib/compiler-rt/lib/msan/msan_linux.cc user/jeff/numa/contrib/compiler-rt/lib/msan/msan_new_delete.cc user/jeff/numa/contrib/compiler-rt/lib/msan/msan_report.cc user/jeff/numa/contrib/compiler-rt/lib/profile/GCDAProfiling.c user/jeff/numa/contrib/compiler-rt/lib/profile/InstrProfData.inc user/jeff/numa/contrib/compiler-rt/lib/profile/InstrProfiling.c user/jeff/numa/contrib/compiler-rt/lib/profile/InstrProfilingFile.c user/jeff/numa/contrib/compiler-rt/lib/profile/InstrProfilingInternal.h user/jeff/numa/contrib/compiler-rt/lib/profile/InstrProfilingPlatformLinux.c user/jeff/numa/contrib/compiler-rt/lib/profile/InstrProfilingPlatformOther.c user/jeff/numa/contrib/compiler-rt/lib/profile/InstrProfilingPort.h user/jeff/numa/contrib/compiler-rt/lib/profile/InstrProfilingUtil.c user/jeff/numa/contrib/compiler-rt/lib/profile/InstrProfilingUtil.h user/jeff/numa/contrib/compiler-rt/lib/profile/InstrProfilingValue.c user/jeff/numa/contrib/compiler-rt/lib/profile/InstrProfilingWriter.c user/jeff/numa/contrib/compiler-rt/lib/profile/WindowsMMap.c user/jeff/numa/contrib/compiler-rt/lib/safestack/safestack.cc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.cc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator.h user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_checks.h user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_combined.h user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_interface.h user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_local_cache.h user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_primary32.h user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_primary64.h user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_allocator_size_class_map.h user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_asm.h user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic_clang.h user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_atomic_clang_other.h user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_bitvector.h user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_bvgraph.h user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.cc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common.h user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors_ioctl.inc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_interface.inc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_common_libcdep.cc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_interface.inc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_coverage_libcdep_new.cc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_errno.h user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flag_parser.h user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_flags.inc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_interface_internal.h user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_internal_defs.h user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_libignore.cc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux.h user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac.h user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mac_libcdep.cc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_mutex.h user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform.h user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix.cc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix.h user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_posix_libcdep.cc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_printf.cc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps.h user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_common.cc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_freebsd.cc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_linux.cc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_procmaps_mac.cc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_quarantine.h user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_report_decorator.h user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace.h user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stacktrace_printer.cc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_mac.cc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_suppressions.cc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer.cc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer.h user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_internal.h user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_libbacktrace.cc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_libcdep.cc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_syscall_generic.inc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_syscall_linux_aarch64.inc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_syscall_linux_x86_64.inc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_thread_registry.cc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_thread_registry.h user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_tls_get_addr.cc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_unwind_linux_libcdep.cc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win.cc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/sanitizer_win_weak_interception.cc user/jeff/numa/contrib/compiler-rt/lib/sanitizer_common/symbolizer/scripts/build_symbolizer.sh user/jeff/numa/contrib/compiler-rt/lib/scudo/scudo_allocator.cpp user/jeff/numa/contrib/compiler-rt/lib/scudo/scudo_allocator.h user/jeff/numa/contrib/compiler-rt/lib/scudo/scudo_allocator_combined.h user/jeff/numa/contrib/compiler-rt/lib/scudo/scudo_allocator_secondary.h user/jeff/numa/contrib/compiler-rt/lib/scudo/scudo_crc32.h user/jeff/numa/contrib/compiler-rt/lib/scudo/scudo_flags.cpp user/jeff/numa/contrib/compiler-rt/lib/scudo/scudo_flags.inc user/jeff/numa/contrib/compiler-rt/lib/scudo/scudo_new_delete.cpp user/jeff/numa/contrib/compiler-rt/lib/scudo/scudo_utils.cpp user/jeff/numa/contrib/compiler-rt/lib/scudo/scudo_utils.h user/jeff/numa/contrib/compiler-rt/lib/stats/stats.cc user/jeff/numa/contrib/compiler-rt/lib/tsan/rtl/tsan_fd.cc user/jeff/numa/contrib/compiler-rt/lib/tsan/rtl/tsan_interceptors.cc user/jeff/numa/contrib/compiler-rt/lib/tsan/rtl/tsan_interceptors.h user/jeff/numa/contrib/compiler-rt/lib/tsan/rtl/tsan_interceptors_mac.cc user/jeff/numa/contrib/compiler-rt/lib/tsan/rtl/tsan_interface_ann.cc user/jeff/numa/contrib/compiler-rt/lib/tsan/rtl/tsan_libdispatch_mac.cc user/jeff/numa/contrib/compiler-rt/lib/tsan/rtl/tsan_malloc_mac.cc user/jeff/numa/contrib/compiler-rt/lib/tsan/rtl/tsan_mman.cc user/jeff/numa/contrib/compiler-rt/lib/tsan/rtl/tsan_mman.h user/jeff/numa/contrib/compiler-rt/lib/tsan/rtl/tsan_new_delete.cc user/jeff/numa/contrib/compiler-rt/lib/tsan/rtl/tsan_platform.h user/jeff/numa/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc user/jeff/numa/contrib/compiler-rt/lib/tsan/rtl/tsan_platform_mac.cc user/jeff/numa/contrib/compiler-rt/lib/tsan/rtl/tsan_report.cc user/jeff/numa/contrib/compiler-rt/lib/tsan/rtl/tsan_report.h user/jeff/numa/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl.cc user/jeff/numa/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl.h user/jeff/numa/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_aarch64.S user/jeff/numa/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_amd64.S user/jeff/numa/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_mutex.cc user/jeff/numa/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_report.cc user/jeff/numa/contrib/compiler-rt/lib/tsan/rtl/tsan_rtl_thread.cc user/jeff/numa/contrib/compiler-rt/lib/tsan/rtl/tsan_sync.h user/jeff/numa/contrib/compiler-rt/lib/tsan/rtl/tsan_trace.h user/jeff/numa/contrib/compiler-rt/lib/ubsan/ubsan_checks.inc user/jeff/numa/contrib/compiler-rt/lib/ubsan/ubsan_diag.cc user/jeff/numa/contrib/compiler-rt/lib/ubsan/ubsan_diag.h user/jeff/numa/contrib/compiler-rt/lib/ubsan/ubsan_diag_standalone.cc user/jeff/numa/contrib/compiler-rt/lib/ubsan/ubsan_flags.cc user/jeff/numa/contrib/compiler-rt/lib/ubsan/ubsan_handlers.cc user/jeff/numa/contrib/compiler-rt/lib/ubsan/ubsan_handlers.h user/jeff/numa/contrib/compiler-rt/lib/ubsan/ubsan_handlers_cxx.cc user/jeff/numa/contrib/compiler-rt/lib/ubsan/ubsan_init.cc user/jeff/numa/contrib/compiler-rt/lib/ubsan/ubsan_init_standalone.cc user/jeff/numa/contrib/compiler-rt/lib/ubsan/ubsan_interface.inc user/jeff/numa/contrib/compiler-rt/lib/ubsan/ubsan_platform.h user/jeff/numa/contrib/compiler-rt/lib/xray/xray_buffer_queue.cc user/jeff/numa/contrib/compiler-rt/lib/xray/xray_buffer_queue.h user/jeff/numa/contrib/compiler-rt/lib/xray/xray_fdr_log_records.h user/jeff/numa/contrib/compiler-rt/lib/xray/xray_fdr_logging.cc user/jeff/numa/contrib/compiler-rt/lib/xray/xray_fdr_logging.h user/jeff/numa/contrib/compiler-rt/lib/xray/xray_fdr_logging_impl.h user/jeff/numa/contrib/compiler-rt/lib/xray/xray_flags.h user/jeff/numa/contrib/compiler-rt/lib/xray/xray_flags.inc user/jeff/numa/contrib/compiler-rt/lib/xray/xray_init.cc user/jeff/numa/contrib/compiler-rt/lib/xray/xray_inmemory_log.cc user/jeff/numa/contrib/compiler-rt/lib/xray/xray_interface.cc user/jeff/numa/contrib/compiler-rt/lib/xray/xray_interface_internal.h user/jeff/numa/contrib/compiler-rt/lib/xray/xray_log_interface.cc user/jeff/numa/contrib/compiler-rt/lib/xray/xray_trampoline_x86_64.S user/jeff/numa/contrib/compiler-rt/lib/xray/xray_utils.cc user/jeff/numa/contrib/compiler-rt/lib/xray/xray_x86_64.cc user/jeff/numa/contrib/libc++/CREDITS.TXT user/jeff/numa/contrib/libc++/include/__config user/jeff/numa/contrib/libc++/include/__functional_base user/jeff/numa/contrib/libc++/include/__libcpp_version user/jeff/numa/contrib/libc++/include/__locale user/jeff/numa/contrib/libc++/include/__mutex_base user/jeff/numa/contrib/libc++/include/__tree user/jeff/numa/contrib/libc++/include/algorithm user/jeff/numa/contrib/libc++/include/array user/jeff/numa/contrib/libc++/include/bitset user/jeff/numa/contrib/libc++/include/chrono user/jeff/numa/contrib/libc++/include/cstddef user/jeff/numa/contrib/libc++/include/deque user/jeff/numa/contrib/libc++/include/exception user/jeff/numa/contrib/libc++/include/experimental/algorithm user/jeff/numa/contrib/libc++/include/experimental/filesystem user/jeff/numa/contrib/libc++/include/experimental/iterator user/jeff/numa/contrib/libc++/include/forward_list user/jeff/numa/contrib/libc++/include/fstream user/jeff/numa/contrib/libc++/include/functional user/jeff/numa/contrib/libc++/include/future user/jeff/numa/contrib/libc++/include/istream user/jeff/numa/contrib/libc++/include/iterator user/jeff/numa/contrib/libc++/include/list user/jeff/numa/contrib/libc++/include/locale user/jeff/numa/contrib/libc++/include/map user/jeff/numa/contrib/libc++/include/memory user/jeff/numa/contrib/libc++/include/mutex user/jeff/numa/contrib/libc++/include/new user/jeff/numa/contrib/libc++/include/optional user/jeff/numa/contrib/libc++/include/ostream user/jeff/numa/contrib/libc++/include/queue user/jeff/numa/contrib/libc++/include/random user/jeff/numa/contrib/libc++/include/ratio user/jeff/numa/contrib/libc++/include/regex user/jeff/numa/contrib/libc++/include/scoped_allocator user/jeff/numa/contrib/libc++/include/set user/jeff/numa/contrib/libc++/include/sstream user/jeff/numa/contrib/libc++/include/stack user/jeff/numa/contrib/libc++/include/streambuf user/jeff/numa/contrib/libc++/include/string user/jeff/numa/contrib/libc++/include/string_view user/jeff/numa/contrib/libc++/include/system_error user/jeff/numa/contrib/libc++/include/tuple user/jeff/numa/contrib/libc++/include/type_traits user/jeff/numa/contrib/libc++/include/typeinfo user/jeff/numa/contrib/libc++/include/unordered_map user/jeff/numa/contrib/libc++/include/unordered_set user/jeff/numa/contrib/libc++/include/utility user/jeff/numa/contrib/libc++/include/variant user/jeff/numa/contrib/libc++/include/vector user/jeff/numa/contrib/libc++/include/wchar.h user/jeff/numa/contrib/libc++/src/exception.cpp user/jeff/numa/contrib/libc++/src/experimental/filesystem/directory_iterator.cpp user/jeff/numa/contrib/libc++/src/experimental/filesystem/operations.cpp user/jeff/numa/contrib/libc++/src/include/atomic_support.h user/jeff/numa/contrib/libc++/src/include/config_elast.h user/jeff/numa/contrib/libc++/src/include/refstring.h user/jeff/numa/contrib/libc++/src/iostream.cpp user/jeff/numa/contrib/libc++/src/locale.cpp user/jeff/numa/contrib/libc++/src/new.cpp user/jeff/numa/contrib/libc++/src/random.cpp user/jeff/numa/contrib/libc++/src/strstream.cpp user/jeff/numa/contrib/libc++/src/support/runtime/exception_fallback.ipp user/jeff/numa/contrib/libc++/src/support/runtime/exception_msvc.ipp user/jeff/numa/contrib/libc++/src/support/runtime/exception_pointer_msvc.ipp user/jeff/numa/contrib/libc++/src/support/runtime/new_handler_fallback.ipp user/jeff/numa/contrib/libc++/src/system_error.cpp user/jeff/numa/contrib/libc++/src/typeinfo.cpp user/jeff/numa/contrib/llvm/include/llvm-c/Core.h user/jeff/numa/contrib/llvm/include/llvm-c/OrcBindings.h user/jeff/numa/contrib/llvm/include/llvm-c/Transforms/IPO.h user/jeff/numa/contrib/llvm/include/llvm-c/Transforms/Scalar.h user/jeff/numa/contrib/llvm/include/llvm-c/lto.h user/jeff/numa/contrib/llvm/include/llvm/ADT/APFloat.h user/jeff/numa/contrib/llvm/include/llvm/ADT/APInt.h user/jeff/numa/contrib/llvm/include/llvm/ADT/ArrayRef.h user/jeff/numa/contrib/llvm/include/llvm/ADT/BitVector.h user/jeff/numa/contrib/llvm/include/llvm/ADT/DenseMap.h user/jeff/numa/contrib/llvm/include/llvm/ADT/EquivalenceClasses.h user/jeff/numa/contrib/llvm/include/llvm/ADT/FoldingSet.h user/jeff/numa/contrib/llvm/include/llvm/ADT/MapVector.h user/jeff/numa/contrib/llvm/include/llvm/ADT/Optional.h user/jeff/numa/contrib/llvm/include/llvm/ADT/PointerEmbeddedInt.h user/jeff/numa/contrib/llvm/include/llvm/ADT/PointerIntPair.h user/jeff/numa/contrib/llvm/include/llvm/ADT/PointerSumType.h user/jeff/numa/contrib/llvm/include/llvm/ADT/PointerUnion.h user/jeff/numa/contrib/llvm/include/llvm/ADT/STLExtras.h user/jeff/numa/contrib/llvm/include/llvm/ADT/SmallPtrSet.h user/jeff/numa/contrib/llvm/include/llvm/ADT/SmallVector.h user/jeff/numa/contrib/llvm/include/llvm/ADT/StringExtras.h user/jeff/numa/contrib/llvm/include/llvm/ADT/StringMap.h user/jeff/numa/contrib/llvm/include/llvm/ADT/TinyPtrVector.h user/jeff/numa/contrib/llvm/include/llvm/ADT/Triple.h user/jeff/numa/contrib/llvm/include/llvm/ADT/Twine.h user/jeff/numa/contrib/llvm/include/llvm/ADT/iterator.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/AliasAnalysis.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/AliasAnalysisEvaluator.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/AliasSetTracker.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/AssumptionCache.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/BasicAliasAnalysis.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/BlockFrequencyInfo.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/BlockFrequencyInfoImpl.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/BranchProbabilityInfo.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/CFG.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/CFLAndersAliasAnalysis.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/CFLSteensAliasAnalysis.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/CGSCCPassManager.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/CallGraph.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/CallGraphSCCPass.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/ConstantFolding.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/DOTGraphTraitsPass.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/DemandedBits.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/DominanceFrontier.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/DominanceFrontierImpl.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/IndirectCallPromotionAnalysis.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/IndirectCallSiteVisitor.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/InlineCost.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/InstructionSimplify.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/Interval.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/IntervalIterator.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/IntervalPartition.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/LazyCallGraph.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/LoopAccessAnalysis.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/LoopAnalysisManager.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/LoopInfo.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/LoopInfoImpl.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/LoopPass.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/MemoryBuiltins.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/MemoryDependenceAnalysis.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/MemoryLocation.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/MemorySSA.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/ModuleSummaryAnalysis.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/PostDominators.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/ProfileSummaryInfo.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/PtrUseVisitor.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/RegionInfo.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/RegionInfoImpl.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/ScalarEvolution.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/ScalarEvolutionExpander.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/ScalarEvolutionExpressions.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/ScopedNoAliasAA.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/SparsePropagation.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/TargetLibraryInfo.def user/jeff/numa/contrib/llvm/include/llvm/Analysis/TargetLibraryInfo.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/TargetTransformInfo.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/TargetTransformInfoImpl.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/Trace.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/TypeBasedAliasAnalysis.h user/jeff/numa/contrib/llvm/include/llvm/Analysis/ValueTracking.h user/jeff/numa/contrib/llvm/include/llvm/AsmParser/Parser.h user/jeff/numa/contrib/llvm/include/llvm/BinaryFormat/COFF.h user/jeff/numa/contrib/llvm/include/llvm/BinaryFormat/Dwarf.def user/jeff/numa/contrib/llvm/include/llvm/BinaryFormat/Dwarf.h user/jeff/numa/contrib/llvm/include/llvm/BinaryFormat/ELF.h user/jeff/numa/contrib/llvm/include/llvm/BinaryFormat/ELFRelocs/AMDGPU.def user/jeff/numa/contrib/llvm/include/llvm/BinaryFormat/ELFRelocs/AVR.def user/jeff/numa/contrib/llvm/include/llvm/BinaryFormat/ELFRelocs/RISCV.def user/jeff/numa/contrib/llvm/include/llvm/BinaryFormat/MachO.h user/jeff/numa/contrib/llvm/include/llvm/BinaryFormat/Wasm.h user/jeff/numa/contrib/llvm/include/llvm/Bitcode/BitcodeReader.h user/jeff/numa/contrib/llvm/include/llvm/Bitcode/BitcodeWriter.h user/jeff/numa/contrib/llvm/include/llvm/Bitcode/BitstreamReader.h user/jeff/numa/contrib/llvm/include/llvm/Bitcode/LLVMBitCodes.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/AsmPrinter.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/BasicTTIImpl.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/CalcSpillWeights.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/CallingConvLower.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/DFAPacketizer.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/FastISel.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/FaultMaps.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/FunctionLoweringInfo.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/GlobalISel/CallLowering.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/GlobalISel/InstructionSelector.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/GlobalISel/InstructionSelectorImpl.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/GlobalISel/Legalizer.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/GlobalISel/LegalizerInfo.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/GlobalISel/RegisterBankInfo.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/GlobalISel/Utils.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/ISDOpcodes.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/IntrinsicLowering.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/LatencyPriorityQueue.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/LivePhysRegs.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/LiveRangeEdit.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/LiveRegUnits.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/LiveVariables.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/MIRYamlMapping.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/MachineBasicBlock.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/MachineBlockFrequencyInfo.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/MachineCombinerPattern.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/MachineDominanceFrontier.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/MachineDominators.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/MachineFrameInfo.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/MachineFunction.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/MachineInstr.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/MachineInstrBuilder.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/MachineInstrBundle.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/MachineJumpTableInfo.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/MachineLoopInfo.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/MachineMemOperand.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/MachineModuleInfo.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/MachineModuleInfoImpls.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/MachineOperand.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/MachineOptimizationRemarkEmitter.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/MachinePostDominators.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/MachineRegisterInfo.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/MachineSSAUpdater.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/MachineScheduler.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/MachineTraceMetrics.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/MachineValueType.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/PBQP/Solution.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/Passes.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/PreISelIntrinsicLowering.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/PseudoSourceValue.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/RegisterClassInfo.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/RegisterPressure.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/RegisterUsageInfo.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/ResourcePriorityQueue.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/RuntimeLibcalls.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/ScheduleDAG.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/ScheduleDAGInstrs.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/SelectionDAG.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/SelectionDAGAddressAnalysis.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/SelectionDAGISel.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/SelectionDAGNodes.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/SelectionDAGTargetInfo.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/SlotIndexes.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/StackMaps.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/TailDuplicator.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/TargetLoweringObjectFileImpl.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/TargetPassConfig.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/TargetSchedule.h user/jeff/numa/contrib/llvm/include/llvm/CodeGen/ValueTypes.td user/jeff/numa/contrib/llvm/include/llvm/CodeGen/VirtRegMap.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/CodeView/CVRecord.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeView.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeViewSymbols.def user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/CodeView/CodeViewTypes.def user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/CodeView/LazyRandomTypeCollection.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/CodeView/StringsAndChecksums.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolDeserializer.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolRecord.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/CodeView/SymbolSerializer.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeCollection.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeDeserializer.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeIndex.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeIndexDiscovery.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeRecord.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/CodeView/TypeStreamMerger.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/DIContext.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFAbbreviationDeclaration.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFAcceleratorTable.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFContext.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDataExtractor.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugAbbrev.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugFrame.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLine.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugLoc.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugMacro.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugPubTable.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDebugRangeList.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFDie.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFFormValue.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFSection.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFTypeUnit.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFUnit.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFUnitIndex.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/DWARF/DWARFVerifier.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/MSF/MSFBuilder.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/MSF/MSFCommon.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/MSF/MappedBlockStream.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIARawSymbol.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/PDB/DIA/DIASession.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBRawSymbol.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/PDB/IPDBSession.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/PDB/Native/DbiStreamBuilder.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/PDB/Native/GlobalsStream.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/PDB/Native/ModuleDebugStream.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeRawSymbol.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/PDB/Native/NativeSession.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/PDB/Native/PDBFile.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/PDB/Native/PDBFileBuilder.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/PDB/Native/PublicsStream.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/PDB/Native/RawTypes.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/PDB/Native/SymbolStream.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/PDB/PDBSymbol.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/PDB/PDBTypes.h user/jeff/numa/contrib/llvm/include/llvm/DebugInfo/Symbolize/Symbolize.h user/jeff/numa/contrib/llvm/include/llvm/ExecutionEngine/ExecutionEngine.h user/jeff/numa/contrib/llvm/include/llvm/ExecutionEngine/JITSymbol.h user/jeff/numa/contrib/llvm/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h user/jeff/numa/contrib/llvm/include/llvm/ExecutionEngine/Orc/GlobalMappingLayer.h user/jeff/numa/contrib/llvm/include/llvm/ExecutionEngine/Orc/IndirectionUtils.h user/jeff/numa/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcError.h user/jeff/numa/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetClient.h user/jeff/numa/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetRPCAPI.h user/jeff/numa/contrib/llvm/include/llvm/ExecutionEngine/Orc/OrcRemoteTargetServer.h user/jeff/numa/contrib/llvm/include/llvm/ExecutionEngine/Orc/RPCSerialization.h user/jeff/numa/contrib/llvm/include/llvm/ExecutionEngine/Orc/RPCUtils.h user/jeff/numa/contrib/llvm/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h user/jeff/numa/contrib/llvm/include/llvm/ExecutionEngine/SectionMemoryManager.h user/jeff/numa/contrib/llvm/include/llvm/IR/Attributes.h user/jeff/numa/contrib/llvm/include/llvm/IR/Attributes.td user/jeff/numa/contrib/llvm/include/llvm/IR/BasicBlock.h user/jeff/numa/contrib/llvm/include/llvm/IR/CallSite.h user/jeff/numa/contrib/llvm/include/llvm/IR/CallingConv.h user/jeff/numa/contrib/llvm/include/llvm/IR/Constant.h user/jeff/numa/contrib/llvm/include/llvm/IR/ConstantRange.h user/jeff/numa/contrib/llvm/include/llvm/IR/DIBuilder.h user/jeff/numa/contrib/llvm/include/llvm/IR/DataLayout.h user/jeff/numa/contrib/llvm/include/llvm/IR/DebugInfoMetadata.h user/jeff/numa/contrib/llvm/include/llvm/IR/DiagnosticInfo.h user/jeff/numa/contrib/llvm/include/llvm/IR/Dominators.h user/jeff/numa/contrib/llvm/include/llvm/IR/Function.h user/jeff/numa/contrib/llvm/include/llvm/IR/GlobalValue.h user/jeff/numa/contrib/llvm/include/llvm/IR/IRBuilder.h user/jeff/numa/contrib/llvm/include/llvm/IR/InlineAsm.h user/jeff/numa/contrib/llvm/include/llvm/IR/InstrTypes.h user/jeff/numa/contrib/llvm/include/llvm/IR/Instruction.h user/jeff/numa/contrib/llvm/include/llvm/IR/Instructions.h user/jeff/numa/contrib/llvm/include/llvm/IR/IntrinsicInst.h user/jeff/numa/contrib/llvm/include/llvm/IR/Intrinsics.td user/jeff/numa/contrib/llvm/include/llvm/IR/IntrinsicsAArch64.td user/jeff/numa/contrib/llvm/include/llvm/IR/IntrinsicsAMDGPU.td user/jeff/numa/contrib/llvm/include/llvm/IR/IntrinsicsHexagon.td user/jeff/numa/contrib/llvm/include/llvm/IR/IntrinsicsNVVM.td user/jeff/numa/contrib/llvm/include/llvm/IR/IntrinsicsSystemZ.td user/jeff/numa/contrib/llvm/include/llvm/IR/IntrinsicsX86.td user/jeff/numa/contrib/llvm/include/llvm/IR/LLVMContext.h user/jeff/numa/contrib/llvm/include/llvm/IR/LegacyPassManagers.h user/jeff/numa/contrib/llvm/include/llvm/IR/MDBuilder.h user/jeff/numa/contrib/llvm/include/llvm/IR/Metadata.h user/jeff/numa/contrib/llvm/include/llvm/IR/ModuleSummaryIndex.h user/jeff/numa/contrib/llvm/include/llvm/IR/ModuleSummaryIndexYAML.h user/jeff/numa/contrib/llvm/include/llvm/IR/Operator.h user/jeff/numa/contrib/llvm/include/llvm/IR/OptBisect.h user/jeff/numa/contrib/llvm/include/llvm/IR/PassManager.h user/jeff/numa/contrib/llvm/include/llvm/IR/PatternMatch.h user/jeff/numa/contrib/llvm/include/llvm/IR/Type.h user/jeff/numa/contrib/llvm/include/llvm/IR/Value.def user/jeff/numa/contrib/llvm/include/llvm/IR/Value.h user/jeff/numa/contrib/llvm/include/llvm/IR/Verifier.h user/jeff/numa/contrib/llvm/include/llvm/IRReader/IRReader.h user/jeff/numa/contrib/llvm/include/llvm/InitializePasses.h user/jeff/numa/contrib/llvm/include/llvm/LTO/Caching.h user/jeff/numa/contrib/llvm/include/llvm/LTO/Config.h user/jeff/numa/contrib/llvm/include/llvm/LTO/LTO.h user/jeff/numa/contrib/llvm/include/llvm/LTO/legacy/LTOCodeGenerator.h user/jeff/numa/contrib/llvm/include/llvm/LTO/legacy/ThinLTOCodeGenerator.h user/jeff/numa/contrib/llvm/include/llvm/LinkAllIR.h user/jeff/numa/contrib/llvm/include/llvm/LinkAllPasses.h user/jeff/numa/contrib/llvm/include/llvm/MC/LaneBitmask.h user/jeff/numa/contrib/llvm/include/llvm/MC/MCAsmBackend.h user/jeff/numa/contrib/llvm/include/llvm/MC/MCAsmInfo.h user/jeff/numa/contrib/llvm/include/llvm/MC/MCAssembler.h user/jeff/numa/contrib/llvm/include/llvm/MC/MCCodeView.h user/jeff/numa/contrib/llvm/include/llvm/MC/MCContext.h user/jeff/numa/contrib/llvm/include/llvm/MC/MCDwarf.h user/jeff/numa/contrib/llvm/include/llvm/MC/MCELFObjectWriter.h user/jeff/numa/contrib/llvm/include/llvm/MC/MCELFStreamer.h user/jeff/numa/contrib/llvm/include/llvm/MC/MCExpr.h user/jeff/numa/contrib/llvm/include/llvm/MC/MCFragment.h user/jeff/numa/contrib/llvm/include/llvm/MC/MCInst.h user/jeff/numa/contrib/llvm/include/llvm/MC/MCInstrDesc.h user/jeff/numa/contrib/llvm/include/llvm/MC/MCMachObjectWriter.h user/jeff/numa/contrib/llvm/include/llvm/MC/MCObjectFileInfo.h user/jeff/numa/contrib/llvm/include/llvm/MC/MCObjectStreamer.h user/jeff/numa/contrib/llvm/include/llvm/MC/MCParser/MCAsmParser.h user/jeff/numa/contrib/llvm/include/llvm/MC/MCParser/MCTargetAsmParser.h user/jeff/numa/contrib/llvm/include/llvm/MC/MCRegisterInfo.h user/jeff/numa/contrib/llvm/include/llvm/MC/MCSchedule.h user/jeff/numa/contrib/llvm/include/llvm/MC/MCSectionWasm.h user/jeff/numa/contrib/llvm/include/llvm/MC/MCStreamer.h user/jeff/numa/contrib/llvm/include/llvm/MC/MCSubtargetInfo.h user/jeff/numa/contrib/llvm/include/llvm/MC/MCSymbolWasm.h user/jeff/numa/contrib/llvm/include/llvm/MC/MCValue.h user/jeff/numa/contrib/llvm/include/llvm/MC/MCWasmObjectWriter.h user/jeff/numa/contrib/llvm/include/llvm/MC/MCWasmStreamer.h user/jeff/numa/contrib/llvm/include/llvm/MC/MCWinCOFFObjectWriter.h user/jeff/numa/contrib/llvm/include/llvm/MC/MCWinCOFFStreamer.h user/jeff/numa/contrib/llvm/include/llvm/MC/MachineLocation.h user/jeff/numa/contrib/llvm/include/llvm/MC/SubtargetFeature.h user/jeff/numa/contrib/llvm/include/llvm/Object/Archive.h user/jeff/numa/contrib/llvm/include/llvm/Object/ArchiveWriter.h user/jeff/numa/contrib/llvm/include/llvm/Object/Binary.h user/jeff/numa/contrib/llvm/include/llvm/Object/COFF.h user/jeff/numa/contrib/llvm/include/llvm/Object/COFFImportFile.h user/jeff/numa/contrib/llvm/include/llvm/Object/ELF.h user/jeff/numa/contrib/llvm/include/llvm/Object/ELFObjectFile.h user/jeff/numa/contrib/llvm/include/llvm/Object/ELFTypes.h user/jeff/numa/contrib/llvm/include/llvm/Object/IRObjectFile.h user/jeff/numa/contrib/llvm/include/llvm/Object/IRSymtab.h user/jeff/numa/contrib/llvm/include/llvm/Object/MachO.h user/jeff/numa/contrib/llvm/include/llvm/Object/ObjectFile.h user/jeff/numa/contrib/llvm/include/llvm/Object/RelocVisitor.h user/jeff/numa/contrib/llvm/include/llvm/Object/StackMapParser.h user/jeff/numa/contrib/llvm/include/llvm/Object/Wasm.h user/jeff/numa/contrib/llvm/include/llvm/Object/WindowsResource.h user/jeff/numa/contrib/llvm/include/llvm/ObjectYAML/COFFYAML.h user/jeff/numa/contrib/llvm/include/llvm/ObjectYAML/CodeViewYAMLTypes.h user/jeff/numa/contrib/llvm/include/llvm/ObjectYAML/ELFYAML.h user/jeff/numa/contrib/llvm/include/llvm/ObjectYAML/MachOYAML.h user/jeff/numa/contrib/llvm/include/llvm/ObjectYAML/WasmYAML.h user/jeff/numa/contrib/llvm/include/llvm/ObjectYAML/YAML.h user/jeff/numa/contrib/llvm/include/llvm/Option/OptParser.td user/jeff/numa/contrib/llvm/include/llvm/Option/OptTable.h user/jeff/numa/contrib/llvm/include/llvm/Pass.h user/jeff/numa/contrib/llvm/include/llvm/PassAnalysisSupport.h user/jeff/numa/contrib/llvm/include/llvm/PassInfo.h user/jeff/numa/contrib/llvm/include/llvm/PassRegistry.h user/jeff/numa/contrib/llvm/include/llvm/PassSupport.h user/jeff/numa/contrib/llvm/include/llvm/Passes/PassBuilder.h user/jeff/numa/contrib/llvm/include/llvm/ProfileData/Coverage/CoverageMapping.h user/jeff/numa/contrib/llvm/include/llvm/ProfileData/Coverage/CoverageMappingReader.h user/jeff/numa/contrib/llvm/include/llvm/ProfileData/InstrProf.h user/jeff/numa/contrib/llvm/include/llvm/ProfileData/InstrProfData.inc user/jeff/numa/contrib/llvm/include/llvm/ProfileData/InstrProfReader.h user/jeff/numa/contrib/llvm/include/llvm/ProfileData/SampleProf.h user/jeff/numa/contrib/llvm/include/llvm/ProfileData/SampleProfReader.h user/jeff/numa/contrib/llvm/include/llvm/Support/AArch64TargetParser.def user/jeff/numa/contrib/llvm/include/llvm/Support/ARMTargetParser.def user/jeff/numa/contrib/llvm/include/llvm/Support/Allocator.h user/jeff/numa/contrib/llvm/include/llvm/Support/AtomicOrdering.h user/jeff/numa/contrib/llvm/include/llvm/Support/BinaryByteStream.h user/jeff/numa/contrib/llvm/include/llvm/Support/BinaryItemStream.h user/jeff/numa/contrib/llvm/include/llvm/Support/BinaryStream.h user/jeff/numa/contrib/llvm/include/llvm/Support/BinaryStreamRef.h user/jeff/numa/contrib/llvm/include/llvm/Support/CachePruning.h user/jeff/numa/contrib/llvm/include/llvm/Support/Chrono.h user/jeff/numa/contrib/llvm/include/llvm/Support/CodeGen.h user/jeff/numa/contrib/llvm/include/llvm/Support/CodeGenCWrappers.h user/jeff/numa/contrib/llvm/include/llvm/Support/CommandLine.h user/jeff/numa/contrib/llvm/include/llvm/Support/ConvertUTF.h user/jeff/numa/contrib/llvm/include/llvm/Support/DebugCounter.h user/jeff/numa/contrib/llvm/include/llvm/Support/Error.h user/jeff/numa/contrib/llvm/include/llvm/Support/FileOutputBuffer.h user/jeff/numa/contrib/llvm/include/llvm/Support/FileSystem.h user/jeff/numa/contrib/llvm/include/llvm/Support/FormatVariadic.h user/jeff/numa/contrib/llvm/include/llvm/Support/FormatVariadicDetails.h user/jeff/numa/contrib/llvm/include/llvm/Support/GenericDomTree.h user/jeff/numa/contrib/llvm/include/llvm/Support/GenericDomTreeConstruction.h user/jeff/numa/contrib/llvm/include/llvm/Support/Host.h user/jeff/numa/contrib/llvm/include/llvm/Support/KnownBits.h user/jeff/numa/contrib/llvm/include/llvm/Support/LEB128.h user/jeff/numa/contrib/llvm/include/llvm/Support/LockFileManager.h user/jeff/numa/contrib/llvm/include/llvm/Support/LowLevelTypeImpl.h user/jeff/numa/contrib/llvm/include/llvm/Support/MathExtras.h user/jeff/numa/contrib/llvm/include/llvm/Support/Memory.h user/jeff/numa/contrib/llvm/include/llvm/Support/MemoryBuffer.h user/jeff/numa/contrib/llvm/include/llvm/Support/Parallel.h user/jeff/numa/contrib/llvm/include/llvm/Support/PointerLikeTypeTraits.h user/jeff/numa/contrib/llvm/include/llvm/Support/Printable.h user/jeff/numa/contrib/llvm/include/llvm/Support/Process.h user/jeff/numa/contrib/llvm/include/llvm/Support/Program.h user/jeff/numa/contrib/llvm/include/llvm/Support/ReverseIteration.h user/jeff/numa/contrib/llvm/include/llvm/Support/ScaledNumber.h user/jeff/numa/contrib/llvm/include/llvm/Support/SourceMgr.h user/jeff/numa/contrib/llvm/include/llvm/Support/SpecialCaseList.h user/jeff/numa/contrib/llvm/include/llvm/Support/TarWriter.h user/jeff/numa/contrib/llvm/include/llvm/Support/TargetParser.h user/jeff/numa/contrib/llvm/include/llvm/Support/TargetRegistry.h user/jeff/numa/contrib/llvm/include/llvm/Support/ThreadPool.h user/jeff/numa/contrib/llvm/include/llvm/Support/Threading.h user/jeff/numa/contrib/llvm/include/llvm/Support/ToolOutputFile.h user/jeff/numa/contrib/llvm/include/llvm/Support/YAMLParser.h user/jeff/numa/contrib/llvm/include/llvm/Support/YAMLTraits.h user/jeff/numa/contrib/llvm/include/llvm/Support/raw_ostream.h user/jeff/numa/contrib/llvm/include/llvm/TableGen/Error.h user/jeff/numa/contrib/llvm/include/llvm/TableGen/Record.h user/jeff/numa/contrib/llvm/include/llvm/TableGen/StringMatcher.h user/jeff/numa/contrib/llvm/include/llvm/Target/GenericOpcodes.td user/jeff/numa/contrib/llvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td user/jeff/numa/contrib/llvm/include/llvm/Target/Target.td user/jeff/numa/contrib/llvm/include/llvm/Target/TargetMachine.h user/jeff/numa/contrib/llvm/include/llvm/Target/TargetOptions.h user/jeff/numa/contrib/llvm/include/llvm/Target/TargetSelectionDAG.td user/jeff/numa/contrib/llvm/include/llvm/Testing/Support/Error.h user/jeff/numa/contrib/llvm/include/llvm/Testing/Support/SupportHelpers.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/IPO.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/IPO/ArgumentPromotion.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/IPO/ConstantMerge.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/IPO/DeadArgumentElimination.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/IPO/ElimAvailExtern.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/IPO/FunctionAttrs.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/IPO/FunctionImport.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/IPO/GlobalDCE.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/IPO/GlobalOpt.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/IPO/GlobalSplit.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/IPO/Inliner.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/IPO/LowerTypeTests.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/IPO/PartialInlining.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/IPO/SCCP.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Instrumentation.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/PGOInstrumentation.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/SampleProfile.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Scalar.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Scalar/ADCE.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Scalar/ConstantHoisting.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Scalar/CorrelatedValuePropagation.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Scalar/DeadStoreElimination.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Scalar/EarlyCSE.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Scalar/GVN.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Scalar/GVNExpression.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Scalar/IndVarSimplify.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Scalar/JumpThreading.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Scalar/LoopDistribute.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Scalar/LoopIdiomRecognize.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Scalar/LoopInstSimplify.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Scalar/LoopLoadElimination.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Scalar/LoopPassManager.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Scalar/LoopStrengthReduce.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Scalar/LoopUnrollPass.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Scalar/LowerExpectIntrinsic.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Scalar/MemCpyOptimizer.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Scalar/NaryReassociate.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Scalar/NewGVN.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Scalar/Reassociate.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Scalar/SCCP.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Scalar/SROA.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Scalar/SimpleLoopUnswitch.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Scalar/SimplifyCFG.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Utils/AddDiscriminators.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Utils/BasicBlockUtils.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Utils/BypassSlowDivision.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Utils/Cloning.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Utils/CodeExtractor.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Utils/Evaluator.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Utils/FunctionComparator.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Utils/Local.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Utils/LoopUtils.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Utils/LowerMemIntrinsics.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Utils/Mem2Reg.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Utils/ModuleUtils.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Utils/SSAUpdater.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Utils/SSAUpdaterImpl.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Utils/SimplifyIndVar.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Utils/SimplifyLibCalls.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Utils/SplitModule.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Utils/SymbolRewriter.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Utils/UnrollLoop.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Utils/ValueMapper.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Vectorize/LoopVectorize.h user/jeff/numa/contrib/llvm/include/llvm/Transforms/Vectorize/SLPVectorizer.h user/jeff/numa/contrib/llvm/include/llvm/XRay/InstrumentationMap.h user/jeff/numa/contrib/llvm/include/llvm/XRay/XRayRecord.h user/jeff/numa/contrib/llvm/include/llvm/XRay/YAMLXRayRecord.h user/jeff/numa/contrib/llvm/include/llvm/module.modulemap user/jeff/numa/contrib/llvm/include/llvm/module.modulemap.build user/jeff/numa/contrib/llvm/lib/Analysis/AliasAnalysis.cpp user/jeff/numa/contrib/llvm/lib/Analysis/AliasAnalysisEvaluator.cpp user/jeff/numa/contrib/llvm/lib/Analysis/AliasSetTracker.cpp user/jeff/numa/contrib/llvm/lib/Analysis/AssumptionCache.cpp user/jeff/numa/contrib/llvm/lib/Analysis/BasicAliasAnalysis.cpp user/jeff/numa/contrib/llvm/lib/Analysis/BlockFrequencyInfo.cpp user/jeff/numa/contrib/llvm/lib/Analysis/BlockFrequencyInfoImpl.cpp user/jeff/numa/contrib/llvm/lib/Analysis/BranchProbabilityInfo.cpp user/jeff/numa/contrib/llvm/lib/Analysis/CFGPrinter.cpp user/jeff/numa/contrib/llvm/lib/Analysis/CFLAndersAliasAnalysis.cpp user/jeff/numa/contrib/llvm/lib/Analysis/CFLGraph.h user/jeff/numa/contrib/llvm/lib/Analysis/CFLSteensAliasAnalysis.cpp user/jeff/numa/contrib/llvm/lib/Analysis/CGSCCPassManager.cpp user/jeff/numa/contrib/llvm/lib/Analysis/CallGraph.cpp user/jeff/numa/contrib/llvm/lib/Analysis/CallGraphSCCPass.cpp user/jeff/numa/contrib/llvm/lib/Analysis/CodeMetrics.cpp user/jeff/numa/contrib/llvm/lib/Analysis/ConstantFolding.cpp user/jeff/numa/contrib/llvm/lib/Analysis/CostModel.cpp user/jeff/numa/contrib/llvm/lib/Analysis/DemandedBits.cpp user/jeff/numa/contrib/llvm/lib/Analysis/DivergenceAnalysis.cpp user/jeff/numa/contrib/llvm/lib/Analysis/DominanceFrontier.cpp user/jeff/numa/contrib/llvm/lib/Analysis/GlobalsModRef.cpp user/jeff/numa/contrib/llvm/lib/Analysis/IndirectCallPromotionAnalysis.cpp user/jeff/numa/contrib/llvm/lib/Analysis/InlineCost.cpp user/jeff/numa/contrib/llvm/lib/Analysis/InstructionSimplify.cpp user/jeff/numa/contrib/llvm/lib/Analysis/Interval.cpp user/jeff/numa/contrib/llvm/lib/Analysis/IntervalPartition.cpp user/jeff/numa/contrib/llvm/lib/Analysis/LazyCallGraph.cpp user/jeff/numa/contrib/llvm/lib/Analysis/LazyValueInfo.cpp user/jeff/numa/contrib/llvm/lib/Analysis/Lint.cpp user/jeff/numa/contrib/llvm/lib/Analysis/Loads.cpp user/jeff/numa/contrib/llvm/lib/Analysis/LoopAccessAnalysis.cpp user/jeff/numa/contrib/llvm/lib/Analysis/LoopAnalysisManager.cpp user/jeff/numa/contrib/llvm/lib/Analysis/LoopInfo.cpp user/jeff/numa/contrib/llvm/lib/Analysis/LoopPass.cpp user/jeff/numa/contrib/llvm/lib/Analysis/LoopUnrollAnalyzer.cpp user/jeff/numa/contrib/llvm/lib/Analysis/MemDerefPrinter.cpp user/jeff/numa/contrib/llvm/lib/Analysis/MemoryBuiltins.cpp user/jeff/numa/contrib/llvm/lib/Analysis/MemoryDependenceAnalysis.cpp user/jeff/numa/contrib/llvm/lib/Analysis/MemorySSA.cpp user/jeff/numa/contrib/llvm/lib/Analysis/MemorySSAUpdater.cpp user/jeff/numa/contrib/llvm/lib/Analysis/ModuleDebugInfoPrinter.cpp user/jeff/numa/contrib/llvm/lib/Analysis/ModuleSummaryAnalysis.cpp user/jeff/numa/contrib/llvm/lib/Analysis/ObjCARCAliasAnalysis.cpp user/jeff/numa/contrib/llvm/lib/Analysis/ObjCARCAnalysisUtils.cpp user/jeff/numa/contrib/llvm/lib/Analysis/PostDominators.cpp user/jeff/numa/contrib/llvm/lib/Analysis/ProfileSummaryInfo.cpp user/jeff/numa/contrib/llvm/lib/Analysis/PtrUseVisitor.cpp user/jeff/numa/contrib/llvm/lib/Analysis/RegionPass.cpp user/jeff/numa/contrib/llvm/lib/Analysis/ScalarEvolution.cpp user/jeff/numa/contrib/llvm/lib/Analysis/ScalarEvolutionExpander.cpp user/jeff/numa/contrib/llvm/lib/Analysis/ScopedNoAliasAA.cpp user/jeff/numa/contrib/llvm/lib/Analysis/TargetLibraryInfo.cpp user/jeff/numa/contrib/llvm/lib/Analysis/TargetTransformInfo.cpp user/jeff/numa/contrib/llvm/lib/Analysis/Trace.cpp user/jeff/numa/contrib/llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp user/jeff/numa/contrib/llvm/lib/Analysis/ValueTracking.cpp user/jeff/numa/contrib/llvm/lib/Analysis/VectorUtils.cpp user/jeff/numa/contrib/llvm/lib/AsmParser/LLLexer.cpp user/jeff/numa/contrib/llvm/lib/AsmParser/LLParser.cpp user/jeff/numa/contrib/llvm/lib/AsmParser/LLParser.h user/jeff/numa/contrib/llvm/lib/AsmParser/LLToken.h user/jeff/numa/contrib/llvm/lib/AsmParser/Parser.cpp user/jeff/numa/contrib/llvm/lib/BinaryFormat/Dwarf.cpp user/jeff/numa/contrib/llvm/lib/BinaryFormat/Magic.cpp user/jeff/numa/contrib/llvm/lib/Bitcode/Reader/BitReader.cpp user/jeff/numa/contrib/llvm/lib/Bitcode/Reader/BitcodeReader.cpp user/jeff/numa/contrib/llvm/lib/Bitcode/Reader/MetadataLoader.cpp user/jeff/numa/contrib/llvm/lib/Bitcode/Reader/ValueList.cpp user/jeff/numa/contrib/llvm/lib/Bitcode/Reader/ValueList.h user/jeff/numa/contrib/llvm/lib/Bitcode/Writer/BitcodeWriter.cpp user/jeff/numa/contrib/llvm/lib/Bitcode/Writer/ValueEnumerator.cpp user/jeff/numa/contrib/llvm/lib/Bitcode/Writer/ValueEnumerator.h user/jeff/numa/contrib/llvm/lib/CodeGen/AggressiveAntiDepBreaker.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/AggressiveAntiDepBreaker.h user/jeff/numa/contrib/llvm/lib/CodeGen/AllocationOrder.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/AllocationOrder.h user/jeff/numa/contrib/llvm/lib/CodeGen/Analysis.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/AntiDepBreaker.h user/jeff/numa/contrib/llvm/lib/CodeGen/AsmPrinter/ARMException.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/AsmPrinter/AddressPool.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/AsmPrinter/AddressPool.h user/jeff/numa/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/AsmPrinter/CodeViewDebug.h user/jeff/numa/contrib/llvm/lib/CodeGen/AsmPrinter/DIE.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/AsmPrinter/DbgValueHistoryCalculator.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/AsmPrinter/DbgValueHistoryCalculator.h user/jeff/numa/contrib/llvm/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/AsmPrinter/DebugHandlerBase.h user/jeff/numa/contrib/llvm/lib/CodeGen/AsmPrinter/DebugLocEntry.h user/jeff/numa/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfAccelTable.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfAccelTable.h user/jeff/numa/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCFIException.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h user/jeff/numa/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.h user/jeff/numa/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfExpression.h user/jeff/numa/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfFile.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfFile.h user/jeff/numa/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfStringPool.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfStringPool.h user/jeff/numa/contrib/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/AsmPrinter/EHStreamer.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/AsmPrinter/EHStreamer.h user/jeff/numa/contrib/llvm/lib/CodeGen/AsmPrinter/ErlangGCPrinter.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/AsmPrinter/OcamlGCPrinter.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/AsmPrinter/WinException.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/AtomicExpandPass.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/BasicTargetTransformInfo.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/BranchFolding.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/BranchFolding.h user/jeff/numa/contrib/llvm/lib/CodeGen/BranchRelaxation.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/CalcSpillWeights.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/CallingConvLower.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/CodeGen.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/CodeGenPrepare.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/CriticalAntiDepBreaker.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/CriticalAntiDepBreaker.h user/jeff/numa/contrib/llvm/lib/CodeGen/DFAPacketizer.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/DeadMachineInstructionElim.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/DetectDeadLanes.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/DwarfEHPrepare.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/EarlyIfConversion.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/EdgeBundles.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/ExecutionDepsFix.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/ExpandISelPseudos.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/ExpandPostRAPseudos.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/ExpandReductions.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/FEntryInserter.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/GCRootLowering.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/GlobalISel/CallLowering.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/GlobalISel/GlobalISel.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/GlobalISel/InstructionSelect.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/GlobalISel/InstructionSelector.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/GlobalISel/Legalizer.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/GlobalISel/LegalizerInfo.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/GlobalISel/Localizer.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/GlobalISel/RegBankSelect.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/GlobalISel/RegisterBank.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/GlobalISel/RegisterBankInfo.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/GlobalISel/Utils.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/GlobalMerge.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/IfConversion.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/ImplicitNullChecks.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/InlineSpiller.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/InterferenceCache.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/InterferenceCache.h user/jeff/numa/contrib/llvm/lib/CodeGen/InterleavedAccessPass.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/IntrinsicLowering.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/LLVMTargetMachine.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/LatencyPriorityQueue.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/LexicalScopes.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/LiveDebugValues.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/LiveDebugVariables.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/LiveDebugVariables.h user/jeff/numa/contrib/llvm/lib/CodeGen/LiveInterval.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/LiveIntervalUnion.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/LivePhysRegs.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/LiveRangeCalc.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/LiveRangeCalc.h user/jeff/numa/contrib/llvm/lib/CodeGen/LiveRangeEdit.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/LiveRangeShrink.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/LiveRegMatrix.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/LiveRegUnits.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/LiveVariables.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/LocalStackSlotAllocation.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/LowerEmuTLS.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/MIRParser/MILexer.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/MIRParser/MILexer.h user/jeff/numa/contrib/llvm/lib/CodeGen/MIRParser/MIParser.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/MIRParser/MIRParser.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/MIRPrinter.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/MIRPrintingPass.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/MachineBasicBlock.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/MachineBlockFrequencyInfo.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/MachineBlockPlacement.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/MachineBranchProbabilityInfo.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/MachineCSE.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/MachineCombiner.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/MachineCopyPropagation.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/MachineDominators.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/MachineFrameInfo.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/MachineFunction.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/MachineInstr.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/MachineInstrBundle.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/MachineLICM.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/MachineModuleInfo.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/MachineModuleInfoImpls.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/MachineOptimizationRemarkEmitter.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/MachineOutliner.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/MachinePipeliner.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/MachineRegisterInfo.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/MachineSSAUpdater.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/MachineScheduler.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/MachineSink.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/MachineTraceMetrics.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/MachineVerifier.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/MacroFusion.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/OptimizePHIs.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/PHIElimination.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/ParallelCG.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/PatchableFunction.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/PeepholeOptimizer.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/PostRAHazardRecognizer.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/PostRASchedulerList.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/ProcessImplicitDefs.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/PrologEpilogInserter.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/PseudoSourceValue.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/RegAllocBase.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/RegAllocBase.h user/jeff/numa/contrib/llvm/lib/CodeGen/RegAllocBasic.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/RegAllocFast.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/RegAllocGreedy.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/RegAllocPBQP.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/RegUsageInfoCollector.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/RegUsageInfoPropagate.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/RegisterClassInfo.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/RegisterCoalescer.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/RegisterCoalescer.h user/jeff/numa/contrib/llvm/lib/CodeGen/RegisterPressure.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/RegisterScavenging.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/RegisterUsageInfo.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/RenameIndependentSubregs.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/ResetMachineFunctionPass.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/SafeStack.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/SafeStackColoring.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/SafeStackColoring.h user/jeff/numa/contrib/llvm/lib/CodeGen/SafeStackLayout.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/SafeStackLayout.h user/jeff/numa/contrib/llvm/lib/CodeGen/ScalarizeMaskedMemIntrin.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/ScheduleDAG.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/ScheduleDAGInstrs.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/ScheduleDAGPrinter.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/ScoreboardHazardRecognizer.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/SelectionDAG/FastISel.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/SelectionDAG/FunctionLoweringInfo.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/SelectionDAG/InstrEmitter.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h user/jeff/numa/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeTypesGeneric.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/SelectionDAG/ResourcePriorityQueue.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/SelectionDAG/SDNodeDbgValue.h user/jeff/numa/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGFast.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGRRList.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGSDNodes.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/SelectionDAG/ScheduleDAGVLIW.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAG.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGAddressAnalysis.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h user/jeff/numa/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGPrinter.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/SelectionDAG/SelectionDAGTargetInfo.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/SelectionDAG/StatepointLowering.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/SelectionDAG/StatepointLowering.h user/jeff/numa/contrib/llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/ShadowStackGCLowering.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/ShrinkWrap.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/SlotIndexes.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/SpillPlacement.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/SpillPlacement.h user/jeff/numa/contrib/llvm/lib/CodeGen/Spiller.h user/jeff/numa/contrib/llvm/lib/CodeGen/SplitKit.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/SplitKit.h user/jeff/numa/contrib/llvm/lib/CodeGen/StackColoring.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/StackMapLivenessAnalysis.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/StackMaps.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/StackProtector.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/StackSlotColoring.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/TailDuplication.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/TailDuplicator.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/TargetFrameLoweringImpl.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/TargetInstrInfo.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/TargetLoweringBase.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/TargetLoweringObjectFileImpl.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/TargetOptionsImpl.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/TargetPassConfig.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/TargetRegisterInfo.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/TargetSchedule.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/TargetSubtargetInfo.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/TwoAddressInstructionPass.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/UnreachableBlockElim.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/VirtRegMap.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/WinEHPrepare.cpp user/jeff/numa/contrib/llvm/lib/CodeGen/XRayInstrumentation.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/CodeView/CVSymbolVisitor.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/CodeView/CVTypeVisitor.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/CodeView/EnumTables.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/CodeView/LazyRandomTypeCollection.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/CodeView/RecordSerialization.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/CodeView/StringsAndChecksums.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/CodeView/SymbolDumper.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/CodeView/SymbolSerializer.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/CodeView/TypeDumpVisitor.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/CodeView/TypeIndexDiscovery.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/CodeView/TypeRecordMapping.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/CodeView/TypeStreamMerger.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/CodeView/TypeTableCollection.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/DWARF/DWARFAbbreviationDeclaration.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/DWARF/DWARFAcceleratorTable.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/DWARF/DWARFCompileUnit.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/DWARF/DWARFDataExtractor.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugAbbrev.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugAranges.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugLine.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugLoc.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugPubTable.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/DWARF/DWARFDebugRangeList.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/DWARF/DWARFDie.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/DWARF/DWARFFormValue.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/DWARF/DWARFTypeUnit.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/DWARF/DWARFUnit.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/DWARF/DWARFUnitIndex.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/DWARF/DWARFVerifier.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/DWARF/SyntaxHighlighting.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/DWARF/SyntaxHighlighting.h user/jeff/numa/contrib/llvm/lib/DebugInfo/MSF/MSFBuilder.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/MSF/MSFCommon.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/MSF/MappedBlockStream.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/PDB/DIA/DIARawSymbol.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/PDB/DIA/DIASession.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/PDB/Native/DbiModuleDescriptorBuilder.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/PDB/Native/DbiStream.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/PDB/Native/DbiStreamBuilder.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/PDB/Native/GlobalsStream.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/PDB/Native/InfoStream.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/PDB/Native/NativeBuiltinSymbol.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/PDB/Native/NativeExeSymbol.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/PDB/Native/NativeRawSymbol.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/PDB/Native/NativeSession.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/PDB/Native/PDBFile.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/PDB/Native/PDBFileBuilder.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/PDB/Native/PDBStringTable.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/PDB/Native/PDBStringTableBuilder.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/PDB/Native/PublicsStream.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/PDB/Native/SymbolStream.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/PDB/Native/TpiStreamBuilder.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/PDB/PDB.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/PDB/PDBExtras.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/PDB/PDBInterfaceAnchors.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolFunc.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeArray.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeEnum.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/PDB/PDBSymbolTypeUDT.cpp user/jeff/numa/contrib/llvm/lib/DebugInfo/Symbolize/Symbolize.cpp user/jeff/numa/contrib/llvm/lib/Demangle/ItaniumDemangle.cpp user/jeff/numa/contrib/llvm/lib/ExecutionEngine/ExecutionEngine.cpp user/jeff/numa/contrib/llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp user/jeff/numa/contrib/llvm/lib/ExecutionEngine/IntelJITEvents/IntelJITEventListener.cpp user/jeff/numa/contrib/llvm/lib/ExecutionEngine/MCJIT/MCJIT.cpp user/jeff/numa/contrib/llvm/lib/ExecutionEngine/Orc/IndirectionUtils.cpp user/jeff/numa/contrib/llvm/lib/ExecutionEngine/Orc/OrcABISupport.cpp user/jeff/numa/contrib/llvm/lib/ExecutionEngine/Orc/OrcCBindings.cpp user/jeff/numa/contrib/llvm/lib/ExecutionEngine/Orc/OrcCBindingsStack.h user/jeff/numa/contrib/llvm/lib/ExecutionEngine/Orc/OrcError.cpp user/jeff/numa/contrib/llvm/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h user/jeff/numa/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/JITSymbol.cpp user/jeff/numa/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp user/jeff/numa/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp user/jeff/numa/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.h user/jeff/numa/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h user/jeff/numa/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.cpp user/jeff/numa/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldMachO.h user/jeff/numa/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFI386.h user/jeff/numa/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldCOFFThumb.h user/jeff/numa/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldELFMips.cpp user/jeff/numa/contrib/llvm/lib/ExecutionEngine/RuntimeDyld/Targets/RuntimeDyldMachOARM.h user/jeff/numa/contrib/llvm/lib/ExecutionEngine/SectionMemoryManager.cpp user/jeff/numa/contrib/llvm/lib/ExecutionEngine/TargetSelect.cpp user/jeff/numa/contrib/llvm/lib/IR/AsmWriter.cpp user/jeff/numa/contrib/llvm/lib/IR/Attributes.cpp user/jeff/numa/contrib/llvm/lib/IR/AutoUpgrade.cpp user/jeff/numa/contrib/llvm/lib/IR/BasicBlock.cpp user/jeff/numa/contrib/llvm/lib/IR/ConstantFold.cpp user/jeff/numa/contrib/llvm/lib/IR/ConstantRange.cpp user/jeff/numa/contrib/llvm/lib/IR/Constants.cpp user/jeff/numa/contrib/llvm/lib/IR/Core.cpp user/jeff/numa/contrib/llvm/lib/IR/DIBuilder.cpp user/jeff/numa/contrib/llvm/lib/IR/DataLayout.cpp user/jeff/numa/contrib/llvm/lib/IR/DebugInfo.cpp user/jeff/numa/contrib/llvm/lib/IR/DebugInfoMetadata.cpp user/jeff/numa/contrib/llvm/lib/IR/DebugLoc.cpp user/jeff/numa/contrib/llvm/lib/IR/DiagnosticInfo.cpp user/jeff/numa/contrib/llvm/lib/IR/Dominators.cpp user/jeff/numa/contrib/llvm/lib/IR/Function.cpp user/jeff/numa/contrib/llvm/lib/IR/Globals.cpp user/jeff/numa/contrib/llvm/lib/IR/IRBuilder.cpp user/jeff/numa/contrib/llvm/lib/IR/IRPrintingPasses.cpp user/jeff/numa/contrib/llvm/lib/IR/InlineAsm.cpp user/jeff/numa/contrib/llvm/lib/IR/Instruction.cpp user/jeff/numa/contrib/llvm/lib/IR/Instructions.cpp user/jeff/numa/contrib/llvm/lib/IR/IntrinsicInst.cpp user/jeff/numa/contrib/llvm/lib/IR/LLVMContext.cpp user/jeff/numa/contrib/llvm/lib/IR/LLVMContextImpl.cpp user/jeff/numa/contrib/llvm/lib/IR/LLVMContextImpl.h user/jeff/numa/contrib/llvm/lib/IR/LegacyPassManager.cpp user/jeff/numa/contrib/llvm/lib/IR/MDBuilder.cpp user/jeff/numa/contrib/llvm/lib/IR/Metadata.cpp user/jeff/numa/contrib/llvm/lib/IR/OptBisect.cpp user/jeff/numa/contrib/llvm/lib/IR/Pass.cpp user/jeff/numa/contrib/llvm/lib/IR/PassRegistry.cpp user/jeff/numa/contrib/llvm/lib/IR/SafepointIRVerifier.cpp user/jeff/numa/contrib/llvm/lib/IR/User.cpp user/jeff/numa/contrib/llvm/lib/IR/Value.cpp user/jeff/numa/contrib/llvm/lib/IR/ValueSymbolTable.cpp user/jeff/numa/contrib/llvm/lib/IR/ValueTypes.cpp user/jeff/numa/contrib/llvm/lib/IR/Verifier.cpp user/jeff/numa/contrib/llvm/lib/IRReader/IRReader.cpp user/jeff/numa/contrib/llvm/lib/LTO/Caching.cpp user/jeff/numa/contrib/llvm/lib/LTO/LTO.cpp user/jeff/numa/contrib/llvm/lib/LTO/LTOBackend.cpp user/jeff/numa/contrib/llvm/lib/LTO/LTOCodeGenerator.cpp user/jeff/numa/contrib/llvm/lib/LTO/LTOModule.cpp user/jeff/numa/contrib/llvm/lib/LTO/ThinLTOCodeGenerator.cpp user/jeff/numa/contrib/llvm/lib/LTO/UpdateCompilerUsed.cpp user/jeff/numa/contrib/llvm/lib/MC/ELFObjectWriter.cpp user/jeff/numa/contrib/llvm/lib/MC/MCAsmBackend.cpp user/jeff/numa/contrib/llvm/lib/MC/MCAsmInfoWasm.cpp user/jeff/numa/contrib/llvm/lib/MC/MCAsmStreamer.cpp user/jeff/numa/contrib/llvm/lib/MC/MCAssembler.cpp user/jeff/numa/contrib/llvm/lib/MC/MCCodeView.cpp user/jeff/numa/contrib/llvm/lib/MC/MCContext.cpp user/jeff/numa/contrib/llvm/lib/MC/MCDwarf.cpp user/jeff/numa/contrib/llvm/lib/MC/MCELFObjectTargetWriter.cpp user/jeff/numa/contrib/llvm/lib/MC/MCELFStreamer.cpp user/jeff/numa/contrib/llvm/lib/MC/MCExpr.cpp user/jeff/numa/contrib/llvm/lib/MC/MCFragment.cpp user/jeff/numa/contrib/llvm/lib/MC/MCMachOStreamer.cpp user/jeff/numa/contrib/llvm/lib/MC/MCNullStreamer.cpp user/jeff/numa/contrib/llvm/lib/MC/MCObjectFileInfo.cpp user/jeff/numa/contrib/llvm/lib/MC/MCObjectStreamer.cpp user/jeff/numa/contrib/llvm/lib/MC/MCParser/AsmLexer.cpp user/jeff/numa/contrib/llvm/lib/MC/MCParser/AsmParser.cpp user/jeff/numa/contrib/llvm/lib/MC/MCParser/COFFAsmParser.cpp user/jeff/numa/contrib/llvm/lib/MC/MCParser/DarwinAsmParser.cpp user/jeff/numa/contrib/llvm/lib/MC/MCParser/ELFAsmParser.cpp user/jeff/numa/contrib/llvm/lib/MC/MCParser/MCAsmParser.cpp user/jeff/numa/contrib/llvm/lib/MC/MCParser/MCTargetAsmParser.cpp user/jeff/numa/contrib/llvm/lib/MC/MCRegisterInfo.cpp user/jeff/numa/contrib/llvm/lib/MC/MCSectionELF.cpp user/jeff/numa/contrib/llvm/lib/MC/MCSectionWasm.cpp user/jeff/numa/contrib/llvm/lib/MC/MCStreamer.cpp user/jeff/numa/contrib/llvm/lib/MC/MCSubtargetInfo.cpp user/jeff/numa/contrib/llvm/lib/MC/MCSymbolELF.cpp user/jeff/numa/contrib/llvm/lib/MC/MCWasmStreamer.cpp user/jeff/numa/contrib/llvm/lib/MC/MCWin64EH.cpp user/jeff/numa/contrib/llvm/lib/MC/MCWinCOFFStreamer.cpp user/jeff/numa/contrib/llvm/lib/MC/MachObjectWriter.cpp user/jeff/numa/contrib/llvm/lib/MC/StringTableBuilder.cpp user/jeff/numa/contrib/llvm/lib/MC/WasmObjectWriter.cpp user/jeff/numa/contrib/llvm/lib/MC/WinCOFFObjectWriter.cpp user/jeff/numa/contrib/llvm/lib/Object/Archive.cpp user/jeff/numa/contrib/llvm/lib/Object/ArchiveWriter.cpp user/jeff/numa/contrib/llvm/lib/Object/COFFImportFile.cpp user/jeff/numa/contrib/llvm/lib/Object/COFFModuleDefinition.cpp user/jeff/numa/contrib/llvm/lib/Object/COFFObjectFile.cpp user/jeff/numa/contrib/llvm/lib/Object/ELF.cpp user/jeff/numa/contrib/llvm/lib/Object/ELFObjectFile.cpp user/jeff/numa/contrib/llvm/lib/Object/IRObjectFile.cpp user/jeff/numa/contrib/llvm/lib/Object/IRSymtab.cpp user/jeff/numa/contrib/llvm/lib/Object/MachOObjectFile.cpp user/jeff/numa/contrib/llvm/lib/Object/ModuleSymbolTable.cpp user/jeff/numa/contrib/llvm/lib/Object/ObjectFile.cpp user/jeff/numa/contrib/llvm/lib/Object/SymbolicFile.cpp user/jeff/numa/contrib/llvm/lib/Object/WasmObjectFile.cpp user/jeff/numa/contrib/llvm/lib/Object/WindowsResource.cpp user/jeff/numa/contrib/llvm/lib/ObjectYAML/COFFYAML.cpp user/jeff/numa/contrib/llvm/lib/ObjectYAML/CodeViewYAMLDebugSections.cpp user/jeff/numa/contrib/llvm/lib/ObjectYAML/CodeViewYAMLSymbols.cpp user/jeff/numa/contrib/llvm/lib/ObjectYAML/CodeViewYAMLTypes.cpp user/jeff/numa/contrib/llvm/lib/ObjectYAML/DWARFEmitter.cpp user/jeff/numa/contrib/llvm/lib/ObjectYAML/DWARFVisitor.cpp user/jeff/numa/contrib/llvm/lib/ObjectYAML/ELFYAML.cpp user/jeff/numa/contrib/llvm/lib/ObjectYAML/MachOYAML.cpp user/jeff/numa/contrib/llvm/lib/ObjectYAML/WasmYAML.cpp user/jeff/numa/contrib/llvm/lib/Option/OptTable.cpp user/jeff/numa/contrib/llvm/lib/Passes/PassBuilder.cpp user/jeff/numa/contrib/llvm/lib/Passes/PassRegistry.def user/jeff/numa/contrib/llvm/lib/ProfileData/Coverage/CoverageMapping.cpp user/jeff/numa/contrib/llvm/lib/ProfileData/Coverage/CoverageMappingReader.cpp user/jeff/numa/contrib/llvm/lib/ProfileData/Coverage/CoverageMappingWriter.cpp user/jeff/numa/contrib/llvm/lib/ProfileData/InstrProf.cpp user/jeff/numa/contrib/llvm/lib/ProfileData/InstrProfReader.cpp user/jeff/numa/contrib/llvm/lib/ProfileData/ProfileSummaryBuilder.cpp user/jeff/numa/contrib/llvm/lib/ProfileData/SampleProfReader.cpp user/jeff/numa/contrib/llvm/lib/ProfileData/SampleProfWriter.cpp user/jeff/numa/contrib/llvm/lib/Support/APFloat.cpp user/jeff/numa/contrib/llvm/lib/Support/APInt.cpp user/jeff/numa/contrib/llvm/lib/Support/ARMAttributeParser.cpp user/jeff/numa/contrib/llvm/lib/Support/Atomic.cpp user/jeff/numa/contrib/llvm/lib/Support/BinaryStreamRef.cpp user/jeff/numa/contrib/llvm/lib/Support/BinaryStreamWriter.cpp user/jeff/numa/contrib/llvm/lib/Support/BlockFrequency.cpp user/jeff/numa/contrib/llvm/lib/Support/CachePruning.cpp user/jeff/numa/contrib/llvm/lib/Support/Chrono.cpp user/jeff/numa/contrib/llvm/lib/Support/CommandLine.cpp user/jeff/numa/contrib/llvm/lib/Support/Error.cpp user/jeff/numa/contrib/llvm/lib/Support/FileOutputBuffer.cpp user/jeff/numa/contrib/llvm/lib/Support/FoldingSet.cpp user/jeff/numa/contrib/llvm/lib/Support/FormatVariadic.cpp user/jeff/numa/contrib/llvm/lib/Support/GlobPattern.cpp user/jeff/numa/contrib/llvm/lib/Support/GraphWriter.cpp user/jeff/numa/contrib/llvm/lib/Support/Host.cpp user/jeff/numa/contrib/llvm/lib/Support/LockFileManager.cpp user/jeff/numa/contrib/llvm/lib/Support/LowLevelType.cpp user/jeff/numa/contrib/llvm/lib/Support/MD5.cpp user/jeff/numa/contrib/llvm/lib/Support/MemoryBuffer.cpp user/jeff/numa/contrib/llvm/lib/Support/Parallel.cpp user/jeff/numa/contrib/llvm/lib/Support/Path.cpp user/jeff/numa/contrib/llvm/lib/Support/Process.cpp user/jeff/numa/contrib/llvm/lib/Support/Program.cpp user/jeff/numa/contrib/llvm/lib/Support/RandomNumberGenerator.cpp user/jeff/numa/contrib/llvm/lib/Support/ScopedPrinter.cpp user/jeff/numa/contrib/llvm/lib/Support/Signals.cpp user/jeff/numa/contrib/llvm/lib/Support/SmallPtrSet.cpp user/jeff/numa/contrib/llvm/lib/Support/SmallVector.cpp user/jeff/numa/contrib/llvm/lib/Support/SourceMgr.cpp user/jeff/numa/contrib/llvm/lib/Support/SpecialCaseList.cpp user/jeff/numa/contrib/llvm/lib/Support/Statistic.cpp user/jeff/numa/contrib/llvm/lib/Support/StringExtras.cpp user/jeff/numa/contrib/llvm/lib/Support/StringMap.cpp user/jeff/numa/contrib/llvm/lib/Support/StringRef.cpp user/jeff/numa/contrib/llvm/lib/Support/TarWriter.cpp user/jeff/numa/contrib/llvm/lib/Support/TargetParser.cpp user/jeff/numa/contrib/llvm/lib/Support/TargetRegistry.cpp user/jeff/numa/contrib/llvm/lib/Support/ThreadPool.cpp user/jeff/numa/contrib/llvm/lib/Support/Threading.cpp user/jeff/numa/contrib/llvm/lib/Support/Timer.cpp user/jeff/numa/contrib/llvm/lib/Support/ToolOutputFile.cpp user/jeff/numa/contrib/llvm/lib/Support/Triple.cpp user/jeff/numa/contrib/llvm/lib/Support/Unix/DynamicLibrary.inc user/jeff/numa/contrib/llvm/lib/Support/Unix/Memory.inc user/jeff/numa/contrib/llvm/lib/Support/Unix/Path.inc user/jeff/numa/contrib/llvm/lib/Support/Unix/Process.inc user/jeff/numa/contrib/llvm/lib/Support/Unix/Program.inc user/jeff/numa/contrib/llvm/lib/Support/Unix/Threading.inc user/jeff/numa/contrib/llvm/lib/Support/Windows/Memory.inc user/jeff/numa/contrib/llvm/lib/Support/Windows/Path.inc user/jeff/numa/contrib/llvm/lib/Support/Windows/Process.inc user/jeff/numa/contrib/llvm/lib/Support/Windows/Program.inc user/jeff/numa/contrib/llvm/lib/Support/Windows/Signals.inc user/jeff/numa/contrib/llvm/lib/Support/YAMLTraits.cpp user/jeff/numa/contrib/llvm/lib/Support/raw_ostream.cpp user/jeff/numa/contrib/llvm/lib/Support/regcomp.c user/jeff/numa/contrib/llvm/lib/Support/regex2.h user/jeff/numa/contrib/llvm/lib/TableGen/Error.cpp user/jeff/numa/contrib/llvm/lib/TableGen/Main.cpp user/jeff/numa/contrib/llvm/lib/TableGen/Record.cpp user/jeff/numa/contrib/llvm/lib/TableGen/StringMatcher.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64.h user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64.td user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64A53Fix835769.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64A57FPLoadBalancing.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64AdvSIMDScalarPass.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64CallLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64CallLowering.h user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64CallingConvention.h user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64CallingConvention.td user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64CleanupLocalDynamicTLSPass.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64CollectLOH.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64CondBrTuning.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64ConditionOptimizer.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64ConditionalCompares.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64DeadRegisterDefinitionsPass.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64FalkorHWPFFix.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64FastISel.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64FrameLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64FrameLowering.h user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64GenRegisterBankInfo.def user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64ISelLowering.h user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64InstrAtomics.td user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64InstrFormats.td user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.h user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64InstrInfo.td user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64InstructionSelector.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64LegalizerInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64LegalizerInfo.h user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64LoadStoreOptimizer.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64MCInstLower.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64MacroFusion.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64PBQPRegAlloc.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64PromoteConstant.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64RedundantCopyElimination.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64RegisterBankInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64RegisterBankInfo.h user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64RegisterBanks.td user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64RegisterInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64RegisterInfo.td user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64SchedA53.td user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64SchedA57.td user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64SchedCyclone.td user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64SchedFalkor.td user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64SchedKryo.td user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64SchedM1.td user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64SchedThunderX.td user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64SchedThunderX2T99.td user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64SelectionDAGInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64StorePairSuppress.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64Subtarget.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64Subtarget.h user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64SystemOperands.td user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64TargetMachine.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64TargetMachine.h user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64TargetObjectFile.h user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/AArch64TargetTransformInfo.h user/jeff/numa/contrib/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/Disassembler/AArch64Disassembler.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/InstPrinter/AArch64InstPrinter.h user/jeff/numa/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64AsmBackend.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFStreamer.h user/jeff/numa/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCAsmInfo.h user/jeff/numa/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.h user/jeff/numa/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MachObjectWriter.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFObjectWriter.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFStreamer.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/MCTargetDesc/AArch64WinCOFFStreamer.h user/jeff/numa/contrib/llvm/lib/Target/AArch64/TargetInfo/AArch64TargetInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPU.h user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPU.td user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPUAliasAnalysis.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPUAliasAnalysis.h user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPUAlwaysInlinePass.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPUAnnotateKernelFeatures.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPUAsmPrinter.h user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPUCallLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPUCallingConv.td user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPUFrameLowering.h user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPUGenRegisterBankInfo.def user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPUISelLowering.h user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.h user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstrInfo.td user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.h user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPUInstructions.td user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPUMCInstLower.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPUMachineCFGStructurizer.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPUMachineFunction.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPUOpenCLImageTypeLoweringPass.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPUPTNote.h user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPUPromoteAlloca.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPURegisterInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPURegisterInfo.td user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPUSubtarget.h user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.h user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetObjectFile.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPUUnifyDivergentExitNodes.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDGPUUnifyMetadata.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AMDILCFGStructurizer.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/BUFInstructions.td user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/CaymanInstructions.td user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/DSInstructions.td user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.h user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/EvergreenInstructions.td user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/FLATInstructions.td user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/GCNHazardRecognizer.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/GCNHazardRecognizer.h user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/GCNIterativeScheduler.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/GCNIterativeScheduler.h user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/GCNMinRegStrategy.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/GCNRegPressure.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/GCNRegPressure.h user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/InstPrinter/AMDGPUInstPrinter.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/InstPrinter/AMDGPUInstPrinter.h user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUAsmBackend.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFObjectWriter.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFStreamer.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUELFStreamer.h user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUMCTargetDesc.h user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/AMDGPUTargetStreamer.h user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/MCTargetDesc/SIMCCodeEmitter.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/MIMGInstructions.td user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/Processors.td user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/R600ClauseMergePass.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/R600ControlFlowFinalizer.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/R600ExpandSpecialInstrs.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/R600FrameLowering.h user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/R600ISelLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/R600InstrFormats.td user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/R600InstrInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/R600InstrInfo.h user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/R600Instructions.td user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/R600OptimizeVectorRegisters.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/R600Packetizer.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/R600RegisterInfo.td user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/SIDefines.h user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/SIFixSGPRCopies.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/SIFoldOperands.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/SIFrameLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/SIFrameLowering.h user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/SIISelLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/SIISelLowering.h user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/SIInsertSkips.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/SIInsertWaitcnts.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/SIInsertWaits.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/SIInstrFormats.td user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.h user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/SIInstrInfo.td user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/SIInstructions.td user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/SILowerControlFlow.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/SILowerI1Copies.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/SIMachineFunctionInfo.h user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/SIMachineScheduler.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/SIMachineScheduler.h user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/SIOptimizeExecMasking.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/SIPeepholeSDWA.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/SIRegisterInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/SIRegisterInfo.h user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/SIRegisterInfo.td user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/SIShrinkInstructions.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/SMInstructions.td user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/SOPInstructions.td user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/TargetInfo/AMDGPUTargetInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/Utils/AMDGPUBaseInfo.h user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTUtils.cpp user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/Utils/AMDKernelCodeTUtils.h user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/VOP1Instructions.td user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/VOP2Instructions.td user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/VOP3Instructions.td user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/VOP3PInstructions.td user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/VOPCInstructions.td user/jeff/numa/contrib/llvm/lib/Target/AMDGPU/VOPInstructions.td user/jeff/numa/contrib/llvm/lib/Target/ARM/A15SDOptimizer.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/ARM.h user/jeff/numa/contrib/llvm/lib/Target/ARM/ARM.td user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMAsmPrinter.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMAsmPrinter.h user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMBaseInstrInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMBaseInstrInfo.h user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMBaseRegisterInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMBaseRegisterInfo.h user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMCallLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMCallLowering.h user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMCallingConv.h user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMCallingConv.td user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMComputeBlockSize.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMConstantIslandPass.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMConstantPoolValue.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMConstantPoolValue.h user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMExpandPseudoInsts.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMFastISel.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMFrameLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMFrameLowering.h user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMHazardRecognizer.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMISelLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMISelLowering.h user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMInstrFormats.td user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMInstrInfo.td user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMInstrNEON.td user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMInstrThumb.td user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMInstrThumb2.td user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMInstrVFP.td user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMInstructionSelector.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMLegalizerInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMLoadStoreOptimizer.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMMacroFusion.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMOptimizeBarriersPass.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMRegisterBankInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMRegisterInfo.td user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMSchedule.td user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMScheduleA57.td user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMScheduleR52.td user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMSelectionDAGInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMSubtarget.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMSubtarget.h user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMTargetMachine.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMTargetMachine.h user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMTargetTransformInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/ARMTargetTransformInfo.h user/jeff/numa/contrib/llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/InstPrinter/ARMInstPrinter.h user/jeff/numa/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAddressingModes.h user/jeff/numa/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.h user/jeff/numa/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackendDarwin.h user/jeff/numa/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackendELF.h user/jeff/numa/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMAsmBackendWinCOFF.h user/jeff/numa/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMBaseInfo.h user/jeff/numa/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMELFObjectWriter.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMELFStreamer.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCExpr.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.h user/jeff/numa/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMachORelocationInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMMachObjectWriter.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMTargetStreamer.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMWinCOFFObjectWriter.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/MCTargetDesc/ARMWinCOFFStreamer.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/MLxExpansionPass.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/TargetInfo/ARMTargetInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/Thumb1FrameLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/Thumb1FrameLowering.h user/jeff/numa/contrib/llvm/lib/Target/ARM/Thumb1InstrInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/Thumb2InstrInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/Thumb2SizeReduction.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/ThumbRegisterInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/ARM/ThumbRegisterInfo.h user/jeff/numa/contrib/llvm/lib/Target/AVR/AVR.h user/jeff/numa/contrib/llvm/lib/Target/AVR/AVRAsmPrinter.cpp user/jeff/numa/contrib/llvm/lib/Target/AVR/AVRExpandPseudoInsts.cpp user/jeff/numa/contrib/llvm/lib/Target/AVR/AVRFrameLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/AVR/AVRFrameLowering.h user/jeff/numa/contrib/llvm/lib/Target/AVR/AVRISelLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/AVR/AVRISelLowering.h user/jeff/numa/contrib/llvm/lib/Target/AVR/AVRInstrInfo.h user/jeff/numa/contrib/llvm/lib/Target/AVR/AVRRegisterInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/AVR/AVRRegisterInfo.h user/jeff/numa/contrib/llvm/lib/Target/AVR/AVRRelaxMemOperations.cpp user/jeff/numa/contrib/llvm/lib/Target/AVR/AVRSubtarget.h user/jeff/numa/contrib/llvm/lib/Target/AVR/AVRTargetMachine.cpp user/jeff/numa/contrib/llvm/lib/Target/AVR/AVRTargetMachine.h user/jeff/numa/contrib/llvm/lib/Target/AVR/AsmParser/AVRAsmParser.cpp user/jeff/numa/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.cpp user/jeff/numa/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRAsmBackend.h user/jeff/numa/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRELFObjectWriter.cpp user/jeff/numa/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRFixupKinds.h user/jeff/numa/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCExpr.cpp user/jeff/numa/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCExpr.h user/jeff/numa/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCTargetDesc.cpp user/jeff/numa/contrib/llvm/lib/Target/AVR/MCTargetDesc/AVRMCTargetDesc.h user/jeff/numa/contrib/llvm/lib/Target/AVR/TargetInfo/AVRTargetInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/BPF/BPF.td user/jeff/numa/contrib/llvm/lib/Target/BPF/BPFAsmPrinter.cpp user/jeff/numa/contrib/llvm/lib/Target/BPF/BPFFrameLowering.h user/jeff/numa/contrib/llvm/lib/Target/BPF/BPFISelDAGToDAG.cpp user/jeff/numa/contrib/llvm/lib/Target/BPF/BPFISelLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/BPF/BPFISelLowering.h user/jeff/numa/contrib/llvm/lib/Target/BPF/BPFInstrFormats.td user/jeff/numa/contrib/llvm/lib/Target/BPF/BPFInstrInfo.h user/jeff/numa/contrib/llvm/lib/Target/BPF/BPFInstrInfo.td user/jeff/numa/contrib/llvm/lib/Target/BPF/BPFRegisterInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/BPF/BPFRegisterInfo.h user/jeff/numa/contrib/llvm/lib/Target/BPF/BPFRegisterInfo.td user/jeff/numa/contrib/llvm/lib/Target/BPF/BPFSubtarget.cpp user/jeff/numa/contrib/llvm/lib/Target/BPF/BPFSubtarget.h user/jeff/numa/contrib/llvm/lib/Target/BPF/BPFTargetMachine.cpp user/jeff/numa/contrib/llvm/lib/Target/BPF/BPFTargetMachine.h user/jeff/numa/contrib/llvm/lib/Target/BPF/Disassembler/BPFDisassembler.cpp user/jeff/numa/contrib/llvm/lib/Target/BPF/InstPrinter/BPFInstPrinter.cpp user/jeff/numa/contrib/llvm/lib/Target/BPF/InstPrinter/BPFInstPrinter.h user/jeff/numa/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFAsmBackend.cpp user/jeff/numa/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFELFObjectWriter.cpp user/jeff/numa/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFMCCodeEmitter.cpp user/jeff/numa/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFMCTargetDesc.cpp user/jeff/numa/contrib/llvm/lib/Target/BPF/MCTargetDesc/BPFMCTargetDesc.h user/jeff/numa/contrib/llvm/lib/Target/BPF/TargetInfo/BPFTargetInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/AsmParser/HexagonAsmParser.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/BitTracker.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/BitTracker.h user/jeff/numa/contrib/llvm/lib/Target/Hexagon/Disassembler/HexagonDisassembler.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/Hexagon.h user/jeff/numa/contrib/llvm/lib/Target/Hexagon/Hexagon.td user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonAsmPrinter.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonAsmPrinter.h user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonBitSimplify.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonBitTracker.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonBitTracker.h user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonBlockRanges.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonBlockRanges.h user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonCFGOptimizer.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonCommonGEP.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonConstPropagation.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonCopyToCombine.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonDepArch.h user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonDepArch.td user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonDepDecoders.h user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonDepIICHVX.td user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonDepIICScalar.td user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonDepITypes.h user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonDepITypes.td user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonDepInstrFormats.td user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonDepInstrInfo.td user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonDepMappings.td user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonDepOperands.td user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonDepTimingClasses.h user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonEarlyIfConv.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonExpandCondsets.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonFixupHwLoops.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonFrameLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonFrameLowering.h user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonGenExtract.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonGenInsert.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonGenMux.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonGenPredicate.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonIICHVX.td user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonISelDAGToDAG.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonISelLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonISelLowering.h user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonInstrFormats.td user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonInstrInfo.h user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonIntrinsics.td user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonIntrinsicsV60.td user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonMCInstLower.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonMachineScheduler.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonMachineScheduler.h user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonMapAsm2IntrinV62.gen.td user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonNewValueJump.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonOperands.td user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonOptAddrMode.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonPatterns.td user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonPeephole.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonPseudo.td user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonRDFOpt.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonRegisterInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonRegisterInfo.h user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonRegisterInfo.td user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonSchedule.td user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonSplitConst32AndConst64.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonSplitDouble.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonStoreWidening.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonSubtarget.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonSubtarget.h user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonTargetMachine.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonTargetMachine.h user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonTargetTransformInfo.h user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonVLIWPacketizer.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonVLIWPacketizer.h user/jeff/numa/contrib/llvm/lib/Target/Hexagon/HexagonVectorPrint.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonAsmBackend.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonBaseInfo.h user/jeff/numa/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonELFObjectWriter.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCChecker.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCChecker.h user/jeff/numa/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCCodeEmitter.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCCodeEmitter.h user/jeff/numa/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCDuplexInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCELFStreamer.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCELFStreamer.h user/jeff/numa/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCInstrInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCInstrInfo.h user/jeff/numa/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCShuffler.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCShuffler.h user/jeff/numa/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.h user/jeff/numa/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.h user/jeff/numa/contrib/llvm/lib/Target/Hexagon/RDFCopy.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/RDFCopy.h user/jeff/numa/contrib/llvm/lib/Target/Hexagon/RDFDeadCode.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/RDFGraph.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/RDFGraph.h user/jeff/numa/contrib/llvm/lib/Target/Hexagon/RDFLiveness.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/RDFLiveness.h user/jeff/numa/contrib/llvm/lib/Target/Hexagon/RDFRegisters.cpp user/jeff/numa/contrib/llvm/lib/Target/Hexagon/RDFRegisters.h user/jeff/numa/contrib/llvm/lib/Target/Hexagon/TargetInfo/HexagonTargetInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/Lanai/AsmParser/LanaiAsmParser.cpp user/jeff/numa/contrib/llvm/lib/Target/Lanai/LanaiDelaySlotFiller.cpp user/jeff/numa/contrib/llvm/lib/Target/Lanai/LanaiFrameLowering.h user/jeff/numa/contrib/llvm/lib/Target/Lanai/LanaiISelLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/Lanai/LanaiISelLowering.h user/jeff/numa/contrib/llvm/lib/Target/Lanai/LanaiInstrInfo.h user/jeff/numa/contrib/llvm/lib/Target/Lanai/LanaiMemAluCombiner.cpp user/jeff/numa/contrib/llvm/lib/Target/Lanai/LanaiRegisterInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/Lanai/LanaiRegisterInfo.h user/jeff/numa/contrib/llvm/lib/Target/Lanai/LanaiSubtarget.h user/jeff/numa/contrib/llvm/lib/Target/Lanai/LanaiTargetMachine.cpp user/jeff/numa/contrib/llvm/lib/Target/Lanai/LanaiTargetMachine.h user/jeff/numa/contrib/llvm/lib/Target/Lanai/LanaiTargetTransformInfo.h user/jeff/numa/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiAsmBackend.cpp user/jeff/numa/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiELFObjectWriter.cpp user/jeff/numa/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCTargetDesc.cpp user/jeff/numa/contrib/llvm/lib/Target/Lanai/MCTargetDesc/LanaiMCTargetDesc.h user/jeff/numa/contrib/llvm/lib/Target/Lanai/TargetInfo/LanaiTargetInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/MSP430/MSP430BranchSelector.cpp user/jeff/numa/contrib/llvm/lib/Target/MSP430/MSP430FrameLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/MSP430/MSP430FrameLowering.h user/jeff/numa/contrib/llvm/lib/Target/MSP430/MSP430ISelDAGToDAG.cpp user/jeff/numa/contrib/llvm/lib/Target/MSP430/MSP430ISelLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/MSP430/MSP430ISelLowering.h user/jeff/numa/contrib/llvm/lib/Target/MSP430/MSP430InstrInfo.h user/jeff/numa/contrib/llvm/lib/Target/MSP430/MSP430RegisterInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/MSP430/MSP430RegisterInfo.h user/jeff/numa/contrib/llvm/lib/Target/MSP430/MSP430Subtarget.h user/jeff/numa/contrib/llvm/lib/Target/MSP430/MSP430TargetMachine.cpp user/jeff/numa/contrib/llvm/lib/Target/MSP430/MSP430TargetMachine.h user/jeff/numa/contrib/llvm/lib/Target/MSP430/TargetInfo/MSP430TargetInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/Mips/AsmParser/MipsAsmParser.cpp user/jeff/numa/contrib/llvm/lib/Target/Mips/Disassembler/MipsDisassembler.cpp user/jeff/numa/contrib/llvm/lib/Target/Mips/InstPrinter/MipsInstPrinter.cpp user/jeff/numa/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp user/jeff/numa/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.h user/jeff/numa/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp user/jeff/numa/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.cpp user/jeff/numa/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsELFStreamer.h user/jeff/numa/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCAsmInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp user/jeff/numa/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.h user/jeff/numa/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCNaCl.h user/jeff/numa/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.cpp user/jeff/numa/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.h user/jeff/numa/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsNaClELFStreamer.cpp user/jeff/numa/contrib/llvm/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp user/jeff/numa/contrib/llvm/lib/Target/Mips/MicroMips32r6InstrFormats.td user/jeff/numa/contrib/llvm/lib/Target/Mips/MicroMips32r6InstrInfo.td user/jeff/numa/contrib/llvm/lib/Target/Mips/MicroMipsInstrFPU.td user/jeff/numa/contrib/llvm/lib/Target/Mips/MicroMipsInstrFormats.td user/jeff/numa/contrib/llvm/lib/Target/Mips/MicroMipsInstrInfo.td user/jeff/numa/contrib/llvm/lib/Target/Mips/MicroMipsSizeReduction.cpp user/jeff/numa/contrib/llvm/lib/Target/Mips/Mips16FrameLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/Mips/Mips16FrameLowering.h user/jeff/numa/contrib/llvm/lib/Target/Mips/Mips16HardFloat.cpp user/jeff/numa/contrib/llvm/lib/Target/Mips/Mips16ISelLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/Mips/Mips16InstrInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/Mips/Mips16InstrInfo.h user/jeff/numa/contrib/llvm/lib/Target/Mips/Mips16InstrInfo.td user/jeff/numa/contrib/llvm/lib/Target/Mips/Mips16RegisterInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/Mips/Mips32r6InstrInfo.td user/jeff/numa/contrib/llvm/lib/Target/Mips/Mips64InstrInfo.td user/jeff/numa/contrib/llvm/lib/Target/Mips/Mips64r6InstrInfo.td user/jeff/numa/contrib/llvm/lib/Target/Mips/MipsAnalyzeImmediate.cpp user/jeff/numa/contrib/llvm/lib/Target/Mips/MipsAnalyzeImmediate.h user/jeff/numa/contrib/llvm/lib/Target/Mips/MipsAsmPrinter.cpp user/jeff/numa/contrib/llvm/lib/Target/Mips/MipsAsmPrinter.h user/jeff/numa/contrib/llvm/lib/Target/Mips/MipsCCState.cpp user/jeff/numa/contrib/llvm/lib/Target/Mips/MipsCondMov.td user/jeff/numa/contrib/llvm/lib/Target/Mips/MipsConstantIslandPass.cpp user/jeff/numa/contrib/llvm/lib/Target/Mips/MipsDSPInstrInfo.td user/jeff/numa/contrib/llvm/lib/Target/Mips/MipsDelaySlotFiller.cpp user/jeff/numa/contrib/llvm/lib/Target/Mips/MipsFastISel.cpp user/jeff/numa/contrib/llvm/lib/Target/Mips/MipsFrameLowering.h user/jeff/numa/contrib/llvm/lib/Target/Mips/MipsHazardSchedule.cpp user/jeff/numa/contrib/llvm/lib/Target/Mips/MipsISelLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/Mips/MipsISelLowering.h user/jeff/numa/contrib/llvm/lib/Target/Mips/MipsInstrFPU.td user/jeff/numa/contrib/llvm/lib/Target/Mips/MipsInstrInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/Mips/MipsInstrInfo.h user/jeff/numa/contrib/llvm/lib/Target/Mips/MipsInstrInfo.td user/jeff/numa/contrib/llvm/lib/Target/Mips/MipsLongBranch.cpp user/jeff/numa/contrib/llvm/lib/Target/Mips/MipsMCInstLower.cpp user/jeff/numa/contrib/llvm/lib/Target/Mips/MipsMCInstLower.h user/jeff/numa/contrib/llvm/lib/Target/Mips/MipsMachineFunction.cpp user/jeff/numa/contrib/llvm/lib/Target/Mips/MipsOptimizePICCall.cpp user/jeff/numa/contrib/llvm/lib/Target/Mips/MipsRegisterInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/Mips/MipsRegisterInfo.h user/jeff/numa/contrib/llvm/lib/Target/Mips/MipsRegisterInfo.td user/jeff/numa/contrib/llvm/lib/Target/Mips/MipsSEFrameLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/Mips/MipsSEFrameLowering.h user/jeff/numa/contrib/llvm/lib/Target/Mips/MipsSEISelDAGToDAG.cpp user/jeff/numa/contrib/llvm/lib/Target/Mips/MipsSEISelLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/Mips/MipsSEISelLowering.h user/jeff/numa/contrib/llvm/lib/Target/Mips/MipsSEInstrInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/Mips/MipsSERegisterInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/Mips/MipsScheduleGeneric.td user/jeff/numa/contrib/llvm/lib/Target/Mips/MipsScheduleP5600.td user/jeff/numa/contrib/llvm/lib/Target/Mips/MipsSubtarget.cpp user/jeff/numa/contrib/llvm/lib/Target/Mips/MipsSubtarget.h user/jeff/numa/contrib/llvm/lib/Target/Mips/MipsTargetMachine.cpp user/jeff/numa/contrib/llvm/lib/Target/Mips/MipsTargetMachine.h user/jeff/numa/contrib/llvm/lib/Target/Mips/MipsTargetObjectFile.cpp user/jeff/numa/contrib/llvm/lib/Target/Mips/MipsTargetStreamer.h user/jeff/numa/contrib/llvm/lib/Target/Mips/Relocation.txt user/jeff/numa/contrib/llvm/lib/Target/Mips/TargetInfo/MipsTargetInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/NVPTX/NVPTX.td user/jeff/numa/contrib/llvm/lib/Target/NVPTX/NVPTXAsmPrinter.cpp user/jeff/numa/contrib/llvm/lib/Target/NVPTX/NVPTXAssignValidGlobalNames.cpp user/jeff/numa/contrib/llvm/lib/Target/NVPTX/NVPTXFrameLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/NVPTX/NVPTXFrameLowering.h user/jeff/numa/contrib/llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp user/jeff/numa/contrib/llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.h user/jeff/numa/contrib/llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/NVPTX/NVPTXISelLowering.h user/jeff/numa/contrib/llvm/lib/Target/NVPTX/NVPTXInstrInfo.h user/jeff/numa/contrib/llvm/lib/Target/NVPTX/NVPTXInstrInfo.td user/jeff/numa/contrib/llvm/lib/Target/NVPTX/NVPTXIntrinsics.td user/jeff/numa/contrib/llvm/lib/Target/NVPTX/NVPTXLowerAggrCopies.cpp user/jeff/numa/contrib/llvm/lib/Target/NVPTX/NVPTXMCExpr.cpp user/jeff/numa/contrib/llvm/lib/Target/NVPTX/NVPTXPeephole.cpp user/jeff/numa/contrib/llvm/lib/Target/NVPTX/NVPTXPrologEpilogPass.cpp user/jeff/numa/contrib/llvm/lib/Target/NVPTX/NVPTXRegisterInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/NVPTX/NVPTXRegisterInfo.h user/jeff/numa/contrib/llvm/lib/Target/NVPTX/NVPTXReplaceImageHandles.cpp user/jeff/numa/contrib/llvm/lib/Target/NVPTX/NVPTXSubtarget.h user/jeff/numa/contrib/llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp user/jeff/numa/contrib/llvm/lib/Target/NVPTX/NVPTXTargetMachine.h user/jeff/numa/contrib/llvm/lib/Target/NVPTX/NVPTXTargetObjectFile.h user/jeff/numa/contrib/llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/NVPTX/NVPTXTargetTransformInfo.h user/jeff/numa/contrib/llvm/lib/Target/NVPTX/TargetInfo/NVPTXTargetInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2MCTargetDesc.cpp user/jeff/numa/contrib/llvm/lib/Target/Nios2/MCTargetDesc/Nios2MCTargetDesc.h user/jeff/numa/contrib/llvm/lib/Target/Nios2/Nios2.h user/jeff/numa/contrib/llvm/lib/Target/Nios2/Nios2.td user/jeff/numa/contrib/llvm/lib/Target/Nios2/Nios2InstrFormats.td user/jeff/numa/contrib/llvm/lib/Target/Nios2/Nios2InstrInfo.td user/jeff/numa/contrib/llvm/lib/Target/Nios2/Nios2TargetMachine.cpp user/jeff/numa/contrib/llvm/lib/Target/Nios2/Nios2TargetMachine.h user/jeff/numa/contrib/llvm/lib/Target/Nios2/TargetInfo/Nios2TargetInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/PowerPC/AsmParser/PPCAsmParser.cpp user/jeff/numa/contrib/llvm/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.cpp user/jeff/numa/contrib/llvm/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.h user/jeff/numa/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp user/jeff/numa/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCELFObjectWriter.cpp user/jeff/numa/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCAsmInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp user/jeff/numa/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.h user/jeff/numa/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMachObjectWriter.cpp user/jeff/numa/contrib/llvm/lib/Target/PowerPC/MCTargetDesc/PPCPredicates.h user/jeff/numa/contrib/llvm/lib/Target/PowerPC/P9InstrResources.td user/jeff/numa/contrib/llvm/lib/Target/PowerPC/PPC.h user/jeff/numa/contrib/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp user/jeff/numa/contrib/llvm/lib/Target/PowerPC/PPCBranchSelector.cpp user/jeff/numa/contrib/llvm/lib/Target/PowerPC/PPCCTRLoops.cpp user/jeff/numa/contrib/llvm/lib/Target/PowerPC/PPCEarlyReturn.cpp user/jeff/numa/contrib/llvm/lib/Target/PowerPC/PPCExpandISEL.cpp user/jeff/numa/contrib/llvm/lib/Target/PowerPC/PPCFastISel.cpp user/jeff/numa/contrib/llvm/lib/Target/PowerPC/PPCFrameLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/PowerPC/PPCFrameLowering.h user/jeff/numa/contrib/llvm/lib/Target/PowerPC/PPCISelDAGToDAG.cpp user/jeff/numa/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/PowerPC/PPCISelLowering.h user/jeff/numa/contrib/llvm/lib/Target/PowerPC/PPCInstr64Bit.td user/jeff/numa/contrib/llvm/lib/Target/PowerPC/PPCInstrAltivec.td user/jeff/numa/contrib/llvm/lib/Target/PowerPC/PPCInstrFormats.td user/jeff/numa/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.h user/jeff/numa/contrib/llvm/lib/Target/PowerPC/PPCInstrInfo.td user/jeff/numa/contrib/llvm/lib/Target/PowerPC/PPCInstrVSX.td user/jeff/numa/contrib/llvm/lib/Target/PowerPC/PPCLoopPreIncPrep.cpp user/jeff/numa/contrib/llvm/lib/Target/PowerPC/PPCMCInstLower.cpp user/jeff/numa/contrib/llvm/lib/Target/PowerPC/PPCMIPeephole.cpp user/jeff/numa/contrib/llvm/lib/Target/PowerPC/PPCMachineFunctionInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/PowerPC/PPCMachineFunctionInfo.h user/jeff/numa/contrib/llvm/lib/Target/PowerPC/PPCQPXLoadSplat.cpp user/jeff/numa/contrib/llvm/lib/Target/PowerPC/PPCRegisterInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/PowerPC/PPCRegisterInfo.td user/jeff/numa/contrib/llvm/lib/Target/PowerPC/PPCScheduleP9.td user/jeff/numa/contrib/llvm/lib/Target/PowerPC/PPCSubtarget.h user/jeff/numa/contrib/llvm/lib/Target/PowerPC/PPCTLSDynamicCall.cpp user/jeff/numa/contrib/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp user/jeff/numa/contrib/llvm/lib/Target/PowerPC/PPCTargetMachine.h user/jeff/numa/contrib/llvm/lib/Target/PowerPC/PPCTargetObjectFile.h user/jeff/numa/contrib/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/PowerPC/PPCTargetTransformInfo.h user/jeff/numa/contrib/llvm/lib/Target/PowerPC/PPCVSXFMAMutate.cpp user/jeff/numa/contrib/llvm/lib/Target/PowerPC/PPCVSXSwapRemoval.cpp user/jeff/numa/contrib/llvm/lib/Target/PowerPC/TargetInfo/PowerPCTargetInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp user/jeff/numa/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFObjectWriter.cpp user/jeff/numa/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCCodeEmitter.cpp user/jeff/numa/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCTargetDesc.cpp user/jeff/numa/contrib/llvm/lib/Target/RISCV/MCTargetDesc/RISCVMCTargetDesc.h user/jeff/numa/contrib/llvm/lib/Target/RISCV/RISCV.td user/jeff/numa/contrib/llvm/lib/Target/RISCV/RISCVInstrFormats.td user/jeff/numa/contrib/llvm/lib/Target/RISCV/RISCVInstrInfo.td user/jeff/numa/contrib/llvm/lib/Target/RISCV/RISCVRegisterInfo.td user/jeff/numa/contrib/llvm/lib/Target/RISCV/RISCVTargetMachine.cpp user/jeff/numa/contrib/llvm/lib/Target/RISCV/RISCVTargetMachine.h user/jeff/numa/contrib/llvm/lib/Target/RISCV/TargetInfo/RISCVTargetInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/Sparc/AsmParser/SparcAsmParser.cpp user/jeff/numa/contrib/llvm/lib/Target/Sparc/DelaySlotFiller.cpp user/jeff/numa/contrib/llvm/lib/Target/Sparc/LeonFeatures.td user/jeff/numa/contrib/llvm/lib/Target/Sparc/LeonPasses.cpp user/jeff/numa/contrib/llvm/lib/Target/Sparc/LeonPasses.h user/jeff/numa/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp user/jeff/numa/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcELFObjectWriter.cpp user/jeff/numa/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.cpp user/jeff/numa/contrib/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.h user/jeff/numa/contrib/llvm/lib/Target/Sparc/Sparc.td user/jeff/numa/contrib/llvm/lib/Target/Sparc/SparcFrameLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/Sparc/SparcFrameLowering.h user/jeff/numa/contrib/llvm/lib/Target/Sparc/SparcISelLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/Sparc/SparcISelLowering.h user/jeff/numa/contrib/llvm/lib/Target/Sparc/SparcInstrInfo.h user/jeff/numa/contrib/llvm/lib/Target/Sparc/SparcInstrInfo.td user/jeff/numa/contrib/llvm/lib/Target/Sparc/SparcRegisterInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/Sparc/SparcRegisterInfo.h user/jeff/numa/contrib/llvm/lib/Target/Sparc/SparcSubtarget.cpp user/jeff/numa/contrib/llvm/lib/Target/Sparc/SparcSubtarget.h user/jeff/numa/contrib/llvm/lib/Target/Sparc/SparcTargetMachine.cpp user/jeff/numa/contrib/llvm/lib/Target/Sparc/SparcTargetMachine.h user/jeff/numa/contrib/llvm/lib/Target/Sparc/SparcTargetObjectFile.cpp user/jeff/numa/contrib/llvm/lib/Target/Sparc/TargetInfo/SparcTargetInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/SystemZ/AsmParser/SystemZAsmParser.cpp user/jeff/numa/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCAsmBackend.cpp user/jeff/numa/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCObjectWriter.cpp user/jeff/numa/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCTargetDesc.cpp user/jeff/numa/contrib/llvm/lib/Target/SystemZ/MCTargetDesc/SystemZMCTargetDesc.h user/jeff/numa/contrib/llvm/lib/Target/SystemZ/SystemZ.td user/jeff/numa/contrib/llvm/lib/Target/SystemZ/SystemZElimCompare.cpp user/jeff/numa/contrib/llvm/lib/Target/SystemZ/SystemZFrameLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/SystemZ/SystemZFrameLowering.h user/jeff/numa/contrib/llvm/lib/Target/SystemZ/SystemZHazardRecognizer.cpp user/jeff/numa/contrib/llvm/lib/Target/SystemZ/SystemZHazardRecognizer.h user/jeff/numa/contrib/llvm/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp user/jeff/numa/contrib/llvm/lib/Target/SystemZ/SystemZISelLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/SystemZ/SystemZISelLowering.h user/jeff/numa/contrib/llvm/lib/Target/SystemZ/SystemZInstrFP.td user/jeff/numa/contrib/llvm/lib/Target/SystemZ/SystemZInstrFormats.td user/jeff/numa/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.h user/jeff/numa/contrib/llvm/lib/Target/SystemZ/SystemZInstrInfo.td user/jeff/numa/contrib/llvm/lib/Target/SystemZ/SystemZInstrSystem.td user/jeff/numa/contrib/llvm/lib/Target/SystemZ/SystemZInstrVector.td user/jeff/numa/contrib/llvm/lib/Target/SystemZ/SystemZLDCleanup.cpp user/jeff/numa/contrib/llvm/lib/Target/SystemZ/SystemZMachineScheduler.cpp user/jeff/numa/contrib/llvm/lib/Target/SystemZ/SystemZMachineScheduler.h user/jeff/numa/contrib/llvm/lib/Target/SystemZ/SystemZOperators.td user/jeff/numa/contrib/llvm/lib/Target/SystemZ/SystemZRegisterInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/SystemZ/SystemZRegisterInfo.h user/jeff/numa/contrib/llvm/lib/Target/SystemZ/SystemZRegisterInfo.td user/jeff/numa/contrib/llvm/lib/Target/SystemZ/SystemZShortenInst.cpp user/jeff/numa/contrib/llvm/lib/Target/SystemZ/SystemZSubtarget.h user/jeff/numa/contrib/llvm/lib/Target/SystemZ/SystemZTargetMachine.cpp user/jeff/numa/contrib/llvm/lib/Target/SystemZ/SystemZTargetMachine.h user/jeff/numa/contrib/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/SystemZ/SystemZTargetTransformInfo.h user/jeff/numa/contrib/llvm/lib/Target/SystemZ/TargetInfo/SystemZTargetInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/TargetLoweringObjectFile.cpp user/jeff/numa/contrib/llvm/lib/Target/TargetMachine.cpp user/jeff/numa/contrib/llvm/lib/Target/TargetMachineC.cpp user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/InstPrinter/WebAssemblyInstPrinter.cpp user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyAsmBackend.cpp user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyELFObjectWriter.cpp user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCCodeEmitter.cpp user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.cpp user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyMCTargetDesc.h user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.cpp user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyTargetStreamer.h user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/MCTargetDesc/WebAssemblyWasmObjectWriter.cpp user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/TargetInfo/WebAssemblyTargetInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/WebAssembly.h user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/WebAssembly.td user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.cpp user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/WebAssemblyAsmPrinter.h user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/WebAssemblyCallIndirectFixup.cpp user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/WebAssemblyExplicitLocals.cpp user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFastISel.cpp user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFixFunctionBitcasts.cpp user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFixIrreducibleControlFlow.cpp user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.h user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/WebAssemblyISelDAGToDAG.cpp user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.h user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrAtomics.td user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrConv.td user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrFormats.td user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.h user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/WebAssemblyInstrMemory.td user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/WebAssemblyLowerBrUnless.cpp user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/WebAssemblyOptimizeLiveIntervals.cpp user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/WebAssemblyPrepareForLiveIntervals.cpp user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegColoring.cpp user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegStackify.cpp user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRegisterInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/WebAssemblyRuntimeLibcallSignatures.cpp user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/WebAssemblySetP2AlignOperands.cpp user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/WebAssemblyStoreResults.cpp user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/WebAssemblySubtarget.cpp user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/WebAssemblySubtarget.h user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.h user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/WebAssemblyTargetTransformInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/WebAssembly/known_gcc_test_failures.txt user/jeff/numa/contrib/llvm/lib/Target/X86/AsmParser/X86AsmInstrumentation.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/AsmParser/X86AsmInstrumentation.h user/jeff/numa/contrib/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/AsmParser/X86Operand.h user/jeff/numa/contrib/llvm/lib/Target/X86/Disassembler/X86Disassembler.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoder.h user/jeff/numa/contrib/llvm/lib/Target/X86/Disassembler/X86DisassemblerDecoderCommon.h user/jeff/numa/contrib/llvm/lib/Target/X86/InstPrinter/X86ATTInstPrinter.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/InstPrinter/X86InstComments.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/InstPrinter/X86InstComments.h user/jeff/numa/contrib/llvm/lib/Target/X86/InstPrinter/X86IntelInstPrinter.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h user/jeff/numa/contrib/llvm/lib/Target/X86/MCTargetDesc/X86ELFObjectWriter.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCAsmInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCCodeEmitter.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h user/jeff/numa/contrib/llvm/lib/Target/X86/MCTargetDesc/X86MachObjectWriter.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFObjectWriter.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/MCTargetDesc/X86WinCOFFStreamer.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/TargetInfo/X86TargetInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/X86.h user/jeff/numa/contrib/llvm/lib/Target/X86/X86.td user/jeff/numa/contrib/llvm/lib/Target/X86/X86AsmPrinter.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/X86AsmPrinter.h user/jeff/numa/contrib/llvm/lib/Target/X86/X86CallFrameOptimization.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/X86CallLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/X86CallLowering.h user/jeff/numa/contrib/llvm/lib/Target/X86/X86CallingConv.td user/jeff/numa/contrib/llvm/lib/Target/X86/X86CmovConversion.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/X86EvexToVex.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/X86ExpandPseudo.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/X86FastISel.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/X86FixupBWInsts.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/X86FixupLEAs.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/X86FloatingPoint.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/X86FrameLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/X86FrameLowering.h user/jeff/numa/contrib/llvm/lib/Target/X86/X86GenRegisterBankInfo.def user/jeff/numa/contrib/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/X86ISelLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/X86ISelLowering.h user/jeff/numa/contrib/llvm/lib/Target/X86/X86Instr3DNow.td user/jeff/numa/contrib/llvm/lib/Target/X86/X86InstrAVX512.td user/jeff/numa/contrib/llvm/lib/Target/X86/X86InstrArithmetic.td user/jeff/numa/contrib/llvm/lib/Target/X86/X86InstrCMovSetCC.td user/jeff/numa/contrib/llvm/lib/Target/X86/X86InstrCompiler.td user/jeff/numa/contrib/llvm/lib/Target/X86/X86InstrControl.td user/jeff/numa/contrib/llvm/lib/Target/X86/X86InstrExtension.td user/jeff/numa/contrib/llvm/lib/Target/X86/X86InstrFMA.td user/jeff/numa/contrib/llvm/lib/Target/X86/X86InstrFPStack.td user/jeff/numa/contrib/llvm/lib/Target/X86/X86InstrFormats.td user/jeff/numa/contrib/llvm/lib/Target/X86/X86InstrFragmentsSIMD.td user/jeff/numa/contrib/llvm/lib/Target/X86/X86InstrInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/X86InstrInfo.h user/jeff/numa/contrib/llvm/lib/Target/X86/X86InstrInfo.td user/jeff/numa/contrib/llvm/lib/Target/X86/X86InstrMMX.td user/jeff/numa/contrib/llvm/lib/Target/X86/X86InstrMPX.td user/jeff/numa/contrib/llvm/lib/Target/X86/X86InstrSGX.td user/jeff/numa/contrib/llvm/lib/Target/X86/X86InstrSSE.td user/jeff/numa/contrib/llvm/lib/Target/X86/X86InstrSVM.td user/jeff/numa/contrib/llvm/lib/Target/X86/X86InstrShiftRotate.td user/jeff/numa/contrib/llvm/lib/Target/X86/X86InstrSystem.td user/jeff/numa/contrib/llvm/lib/Target/X86/X86InstrTSX.td user/jeff/numa/contrib/llvm/lib/Target/X86/X86InstrVMX.td user/jeff/numa/contrib/llvm/lib/Target/X86/X86InstrXOP.td user/jeff/numa/contrib/llvm/lib/Target/X86/X86InstructionSelector.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/X86InterleavedAccess.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/X86IntrinsicsInfo.h user/jeff/numa/contrib/llvm/lib/Target/X86/X86LegalizerInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/X86MCInstLower.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/X86MachineFunctionInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/X86MacroFusion.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/X86OptimizeLEAs.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/X86PadShortFunction.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/X86RegisterBankInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/X86RegisterInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/X86RegisterInfo.h user/jeff/numa/contrib/llvm/lib/Target/X86/X86RegisterInfo.td user/jeff/numa/contrib/llvm/lib/Target/X86/X86SchedHaswell.td user/jeff/numa/contrib/llvm/lib/Target/X86/X86SchedSandyBridge.td user/jeff/numa/contrib/llvm/lib/Target/X86/X86Schedule.td user/jeff/numa/contrib/llvm/lib/Target/X86/X86ScheduleAtom.td user/jeff/numa/contrib/llvm/lib/Target/X86/X86ScheduleBtVer2.td user/jeff/numa/contrib/llvm/lib/Target/X86/X86ScheduleSLM.td user/jeff/numa/contrib/llvm/lib/Target/X86/X86ScheduleZnver1.td user/jeff/numa/contrib/llvm/lib/Target/X86/X86SelectionDAGInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/X86ShuffleDecodeConstantPool.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/X86Subtarget.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/X86Subtarget.h user/jeff/numa/contrib/llvm/lib/Target/X86/X86TargetMachine.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/X86TargetMachine.h user/jeff/numa/contrib/llvm/lib/Target/X86/X86TargetObjectFile.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/X86TargetObjectFile.h user/jeff/numa/contrib/llvm/lib/Target/X86/X86TargetTransformInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/X86TargetTransformInfo.h user/jeff/numa/contrib/llvm/lib/Target/X86/X86VZeroUpper.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/X86WinAllocaExpander.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/X86WinEHState.cpp user/jeff/numa/contrib/llvm/lib/Target/XCore/MCTargetDesc/XCoreMCTargetDesc.cpp user/jeff/numa/contrib/llvm/lib/Target/XCore/TargetInfo/XCoreTargetInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/XCore/XCoreAsmPrinter.cpp user/jeff/numa/contrib/llvm/lib/Target/XCore/XCoreFrameLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/XCore/XCoreFrameLowering.h user/jeff/numa/contrib/llvm/lib/Target/XCore/XCoreISelDAGToDAG.cpp user/jeff/numa/contrib/llvm/lib/Target/XCore/XCoreISelLowering.cpp user/jeff/numa/contrib/llvm/lib/Target/XCore/XCoreISelLowering.h user/jeff/numa/contrib/llvm/lib/Target/XCore/XCoreInstrInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/XCore/XCoreInstrInfo.h user/jeff/numa/contrib/llvm/lib/Target/XCore/XCoreMachineFunctionInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/XCore/XCoreRegisterInfo.cpp user/jeff/numa/contrib/llvm/lib/Target/XCore/XCoreRegisterInfo.h user/jeff/numa/contrib/llvm/lib/Target/XCore/XCoreSubtarget.h user/jeff/numa/contrib/llvm/lib/Target/XCore/XCoreTargetMachine.cpp user/jeff/numa/contrib/llvm/lib/Target/XCore/XCoreTargetMachine.h user/jeff/numa/contrib/llvm/lib/Target/XCore/XCoreTargetTransformInfo.h user/jeff/numa/contrib/llvm/lib/ToolDrivers/llvm-dlltool/DlltoolDriver.cpp user/jeff/numa/contrib/llvm/lib/ToolDrivers/llvm-lib/LibDriver.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Coroutines/CoroFrame.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Coroutines/CoroSplit.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Coroutines/Coroutines.cpp user/jeff/numa/contrib/llvm/lib/Transforms/IPO/AlwaysInliner.cpp user/jeff/numa/contrib/llvm/lib/Transforms/IPO/ArgumentPromotion.cpp user/jeff/numa/contrib/llvm/lib/Transforms/IPO/ConstantMerge.cpp user/jeff/numa/contrib/llvm/lib/Transforms/IPO/CrossDSOCFI.cpp user/jeff/numa/contrib/llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp user/jeff/numa/contrib/llvm/lib/Transforms/IPO/ElimAvailExtern.cpp user/jeff/numa/contrib/llvm/lib/Transforms/IPO/ExtractGV.cpp user/jeff/numa/contrib/llvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp user/jeff/numa/contrib/llvm/lib/Transforms/IPO/FunctionAttrs.cpp user/jeff/numa/contrib/llvm/lib/Transforms/IPO/FunctionImport.cpp user/jeff/numa/contrib/llvm/lib/Transforms/IPO/GlobalDCE.cpp user/jeff/numa/contrib/llvm/lib/Transforms/IPO/GlobalOpt.cpp user/jeff/numa/contrib/llvm/lib/Transforms/IPO/GlobalSplit.cpp user/jeff/numa/contrib/llvm/lib/Transforms/IPO/IPO.cpp user/jeff/numa/contrib/llvm/lib/Transforms/IPO/InferFunctionAttrs.cpp user/jeff/numa/contrib/llvm/lib/Transforms/IPO/InlineSimple.cpp user/jeff/numa/contrib/llvm/lib/Transforms/IPO/Inliner.cpp user/jeff/numa/contrib/llvm/lib/Transforms/IPO/LoopExtractor.cpp user/jeff/numa/contrib/llvm/lib/Transforms/IPO/LowerTypeTests.cpp user/jeff/numa/contrib/llvm/lib/Transforms/IPO/MergeFunctions.cpp user/jeff/numa/contrib/llvm/lib/Transforms/IPO/PartialInlining.cpp user/jeff/numa/contrib/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp user/jeff/numa/contrib/llvm/lib/Transforms/IPO/PruneEH.cpp user/jeff/numa/contrib/llvm/lib/Transforms/IPO/SampleProfile.cpp user/jeff/numa/contrib/llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp user/jeff/numa/contrib/llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp user/jeff/numa/contrib/llvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp user/jeff/numa/contrib/llvm/lib/Transforms/InstCombine/InstCombineAndOrXor.cpp user/jeff/numa/contrib/llvm/lib/Transforms/InstCombine/InstCombineCalls.cpp user/jeff/numa/contrib/llvm/lib/Transforms/InstCombine/InstCombineCasts.cpp user/jeff/numa/contrib/llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp user/jeff/numa/contrib/llvm/lib/Transforms/InstCombine/InstCombineInternal.h user/jeff/numa/contrib/llvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp user/jeff/numa/contrib/llvm/lib/Transforms/InstCombine/InstCombineMulDivRem.cpp user/jeff/numa/contrib/llvm/lib/Transforms/InstCombine/InstCombinePHI.cpp user/jeff/numa/contrib/llvm/lib/Transforms/InstCombine/InstCombineSelect.cpp user/jeff/numa/contrib/llvm/lib/Transforms/InstCombine/InstCombineShifts.cpp user/jeff/numa/contrib/llvm/lib/Transforms/InstCombine/InstCombineSimplifyDemanded.cpp user/jeff/numa/contrib/llvm/lib/Transforms/InstCombine/InstCombineVectorOps.cpp user/jeff/numa/contrib/llvm/lib/Transforms/InstCombine/InstructionCombining.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Instrumentation/BoundsChecking.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Instrumentation/CFGMST.h user/jeff/numa/contrib/llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Instrumentation/Instrumentation.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Instrumentation/PGOMemOPSizeOpt.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp user/jeff/numa/contrib/llvm/lib/Transforms/ObjCARC/ARCRuntimeEntryPoints.h user/jeff/numa/contrib/llvm/lib/Transforms/ObjCARC/BlotMapVector.h user/jeff/numa/contrib/llvm/lib/Transforms/ObjCARC/ObjCARC.cpp user/jeff/numa/contrib/llvm/lib/Transforms/ObjCARC/ObjCARCContract.cpp user/jeff/numa/contrib/llvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp user/jeff/numa/contrib/llvm/lib/Transforms/ObjCARC/ProvenanceAnalysis.cpp user/jeff/numa/contrib/llvm/lib/Transforms/ObjCARC/ProvenanceAnalysis.h user/jeff/numa/contrib/llvm/lib/Transforms/ObjCARC/PtrState.cpp user/jeff/numa/contrib/llvm/lib/Transforms/ObjCARC/PtrState.h user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/ADCE.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/BDCE.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/ConstantHoisting.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/EarlyCSE.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/GVN.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/GVNHoist.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/GVNSink.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/GuardWidening.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/InferAddressSpaces.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/JumpThreading.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/LICM.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/LoopDeletion.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/LoopDistribute.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/LoopInstSimplify.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/LoopInterchange.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/LoopPredication.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/LoopRerollPass.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/LoopRotation.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/LoopSink.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/LoopUnswitch.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/LoopVersioningLICM.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/LowerAtomic.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/NaryReassociate.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/NewGVN.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/PlaceSafepoints.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/Reassociate.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/SCCP.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/SROA.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/Scalar.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/Scalarizer.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/Sink.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/StructurizeCFG.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Utils/ASanStackFrameLayout.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Utils/AddDiscriminators.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Utils/BasicBlockUtils.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Utils/BypassSlowDivision.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Utils/CloneFunction.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Utils/CloneModule.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Utils/CodeExtractor.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Utils/CtorUtils.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Utils/Evaluator.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Utils/FlattenCFG.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Utils/FunctionComparator.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Utils/FunctionImportUtils.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Utils/InlineFunction.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Utils/LCSSA.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Utils/Local.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Utils/LoopSimplify.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Utils/LoopUnroll.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Utils/LoopUnrollPeel.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Utils/LoopUnrollRuntime.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Utils/LoopUtils.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Utils/LowerMemIntrinsics.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Utils/LowerSwitch.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Utils/Mem2Reg.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Utils/MetaRenamer.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Utils/ModuleUtils.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Utils/PredicateInfo.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Utils/PromoteMemoryToRegister.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Utils/SSAUpdater.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Utils/SimplifyCFG.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Utils/SimplifyIndVar.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Utils/SimplifyInstructions.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Utils/SimplifyLibCalls.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Utils/SplitModule.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Utils/SymbolRewriter.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Utils/ValueMapper.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Vectorize/Vectorize.cpp user/jeff/numa/contrib/llvm/lib/XRay/InstrumentationMap.cpp user/jeff/numa/contrib/llvm/lib/XRay/Trace.cpp user/jeff/numa/contrib/llvm/tools/bugpoint/BugDriver.cpp user/jeff/numa/contrib/llvm/tools/bugpoint/BugDriver.h user/jeff/numa/contrib/llvm/tools/bugpoint/CrashDebugger.cpp user/jeff/numa/contrib/llvm/tools/bugpoint/ExecutionDriver.cpp user/jeff/numa/contrib/llvm/tools/bugpoint/ExtractFunction.cpp user/jeff/numa/contrib/llvm/tools/bugpoint/FindBugs.cpp user/jeff/numa/contrib/llvm/tools/bugpoint/OptimizerDriver.cpp user/jeff/numa/contrib/llvm/tools/bugpoint/ToolRunner.cpp user/jeff/numa/contrib/llvm/tools/bugpoint/bugpoint.cpp user/jeff/numa/contrib/llvm/tools/clang/include/clang-c/Index.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/ASTContext.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/ASTMutationListener.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/ASTUnresolvedSet.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/ASTVector.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/AttrIterator.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/BaseSubobject.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/BuiltinTypes.def user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/CXXInheritance.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/CanonicalType.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/CharUnits.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/CommentVisitor.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/Decl.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/DeclBase.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/DeclCXX.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/DeclContextInternals.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/DeclFriend.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/DeclGroup.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/DeclLookups.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/DeclObjC.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/DeclOpenMP.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/DeclTemplate.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/DeclVisitor.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/DeclarationName.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/DependentDiagnostic.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/Expr.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/ExprCXX.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/ExprObjC.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/ExternalASTMerger.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/ExternalASTSource.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/GlobalDecl.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/NestedNameSpecifier.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/ODRHash.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/OpenMPClause.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/OperationKinds.def user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/OperationKinds.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/PrettyPrinter.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/RecordLayout.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/RecursiveASTVisitor.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/Redeclarable.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/Stmt.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/StmtGraphTraits.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/StmtIterator.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/StmtOpenMP.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/StmtVisitor.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/TemplateBase.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/TemplateName.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/Type.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/TypeLoc.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/TypeNodes.def user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/UnresolvedSet.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/AST/VTTBuilder.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchers.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchersInternal.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/ASTMatchers/ASTMatchersMacros.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/ASTMatchers/Dynamic/Parser.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/ASTMatchers/Dynamic/Registry.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/Consumed.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/Dominators.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/LiveVariables.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/PostOrderCFGView.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafety.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyCommon.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Analysis/Analyses/ThreadSafetyTIL.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Analysis/CFG.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Analysis/CallGraph.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Analysis/CloneDetection.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Analysis/ProgramPoint.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Analysis/Support/BumpVector.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/AddressSpaces.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/AllDiagnostics.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/Attr.td user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/AttrDocs.td user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/Attributes.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/Builtins.def user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/Builtins.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsAArch64.def user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsAMDGPU.def user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsARM.def user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsHexagon.def user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsNVPTX.def user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsX86.def user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/BuiltinsX86_64.def user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/CharInfo.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/Cuda.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/DeclNodes.td user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/Diagnostic.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/Diagnostic.td user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticASTKinds.td user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticCommonKinds.td user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticDriverKinds.td user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticFrontendKinds.td user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticGroups.td user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticIDs.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticLexKinds.td user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticOptions.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticParseKinds.td user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSemaKinds.td user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/DiagnosticSerializationKinds.td user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/IdentifierTable.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/LLVM.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/LangOptions.def user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/LangOptions.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/Module.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/OpenCLExtensions.def user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/OpenMPKinds.def user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/OperatorKinds.def user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/OperatorPrecedence.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/SanitizerBlacklist.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/Sanitizers.def user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/Sanitizers.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/SourceLocation.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/SourceManager.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/SourceManagerInternals.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/Specifiers.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/TargetInfo.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/TargetOptions.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/TokenKinds.def user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/TypeTraits.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/VirtualFileSystem.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Basic/arm_neon.td user/jeff/numa/contrib/llvm/tools/clang/include/clang/CodeGen/CodeGenABITypes.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/CodeGen/ConstantInitFuture.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/CodeGen/ModuleBuilder.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Driver/CC1Options.td user/jeff/numa/contrib/llvm/tools/clang/include/clang/Driver/CLCompatOptions.td user/jeff/numa/contrib/llvm/tools/clang/include/clang/Driver/Compilation.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Driver/Distro.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Driver/Driver.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Driver/Job.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Driver/Options.td user/jeff/numa/contrib/llvm/tools/clang/include/clang/Driver/SanitizerArgs.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Driver/ToolChain.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Driver/XRayArgs.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Format/Format.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Frontend/ASTUnit.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Frontend/CodeGenOptions.def user/jeff/numa/contrib/llvm/tools/clang/include/clang/Frontend/CodeGenOptions.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Frontend/CommandLineSourceLoc.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Frontend/CompilerInstance.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Frontend/FrontendActions.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Frontend/FrontendOptions.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Frontend/LangStandard.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Frontend/LangStandards.def user/jeff/numa/contrib/llvm/tools/clang/include/clang/Frontend/PrecompiledPreamble.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Frontend/TextDiagnosticBuffer.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Frontend/VerifyDiagnosticConsumer.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Index/IndexDataConsumer.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Index/IndexSymbol.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Lex/HeaderSearch.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Lex/HeaderSearchOptions.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Lex/Lexer.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Lex/LiteralSupport.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Lex/MacroArgs.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Lex/MacroInfo.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Lex/ModuleLoader.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Lex/ModuleMap.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Lex/MultipleIncludeOpt.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Lex/PPCallbacks.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Lex/PTHLexer.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Lex/PTHManager.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Lex/Pragma.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Lex/PreprocessingRecord.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Lex/Preprocessor.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Lex/PreprocessorLexer.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Lex/PreprocessorOptions.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Lex/TokenLexer.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Parse/ParseAST.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Parse/Parser.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Parse/RAIIObjectsForParser.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Sema/AttributeList.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Sema/CodeCompleteConsumer.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Sema/CodeCompleteOptions.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Sema/DeclSpec.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Sema/Lookup.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Sema/Overload.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Sema/Ownership.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Sema/Scope.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Sema/ScopeInfo.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Sema/Sema.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Sema/SemaInternal.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Serialization/ASTBitCodes.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Serialization/ASTReader.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Serialization/ASTWriter.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Serialization/ContinuousRangeMap.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Serialization/ModuleManager.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/Checkers.td user/jeff/numa/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Checkers/ObjCRetainCount.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/Analyses.def user/jeff/numa/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/AnalysisManager.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CheckerContext.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/CoreEngine.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Environment.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExplodedGraph.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ExprEngine.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/MemRegion.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/ProgramState.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SVals.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/Store.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymExpr.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/StaticAnalyzer/Core/PathSensitive/SymbolManager.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Tooling/CommonOptionsParser.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Tooling/CompilationDatabase.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Tooling/Core/Replacement.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/AtomicChange.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/RecursiveSymbolVisitor.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Rename/RenamingAction.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Rename/USRFindingAction.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Tooling/Refactoring/Rename/USRLocFinder.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/Tooling/Tooling.h user/jeff/numa/contrib/llvm/tools/clang/include/clang/module.modulemap user/jeff/numa/contrib/llvm/tools/clang/lib/AST/ASTContext.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/ASTDumper.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/ASTImporter.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/ASTStructuralEquivalence.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/CXXABI.h user/jeff/numa/contrib/llvm/tools/clang/lib/AST/CXXInheritance.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/CommentSema.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/Decl.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/DeclBase.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/DeclCXX.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/DeclFriend.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/DeclGroup.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/DeclObjC.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/DeclPrinter.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/DeclTemplate.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/DeclarationName.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/Expr.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/ExprCXX.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/ExprClassification.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/ExprConstant.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/ExprObjC.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/ExternalASTMerger.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/ExternalASTSource.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/ItaniumCXXABI.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/ItaniumMangle.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/Mangle.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/MicrosoftCXXABI.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/MicrosoftMangle.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/NSAPI.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/NestedNameSpecifier.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/ODRHash.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/OpenMPClause.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/RecordLayout.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/RecordLayoutBuilder.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/Stmt.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/StmtIterator.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/StmtOpenMP.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/StmtPrinter.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/StmtProfile.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/TemplateBase.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/TemplateName.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/Type.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/TypeLoc.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/TypePrinter.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/VTTBuilder.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/AST/VTableBuilder.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/ASTMatchers/ASTMatchFinder.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/ASTMatchers/ASTMatchersInternal.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/Marshallers.h user/jeff/numa/contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/Parser.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/ASTMatchers/Dynamic/Registry.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Analysis/AnalysisDeclContext.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Analysis/BodyFarm.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Analysis/CFG.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Analysis/CallGraph.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Analysis/CloneDetection.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Analysis/CocoaConventions.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Analysis/Consumed.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Analysis/LiveVariables.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Analysis/PrintfFormatString.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Analysis/ReachableCode.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Analysis/ScanfFormatString.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Analysis/ThreadSafety.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Analysis/ThreadSafetyCommon.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Analysis/ThreadSafetyTIL.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Analysis/UninitializedValues.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Basic/Builtins.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Basic/Cuda.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Basic/Diagnostic.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Basic/DiagnosticIDs.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Basic/FileManager.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Basic/IdentifierTable.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Basic/Module.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Basic/OpenMPKinds.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Basic/OperatorPrecedence.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Basic/SanitizerBlacklist.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Basic/SourceManager.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Basic/TargetInfo.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Basic/Targets.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Basic/Version.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Basic/VirtualFileSystem.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Basic/XRayLists.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/BackendUtil.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CGAtomic.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CGBlocks.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CGBuilder.h user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CGBuiltin.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CGCXX.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CGCXXABI.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CGCXXABI.h user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CGCall.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CGClass.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CGCleanup.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CGCoroutine.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CGDebugInfo.h user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CGDecl.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CGDeclCXX.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CGException.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CGExpr.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CGExprAgg.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CGExprCXX.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CGExprComplex.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CGExprConstant.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CGExprScalar.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CGObjC.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CGObjCMac.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CGObjCRuntime.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CGOpenCLRuntime.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CGOpenCLRuntime.h user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntime.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntime.h user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CGOpenMPRuntimeNVPTX.h user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CGRecordLayoutBuilder.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CGStmt.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CGStmtOpenMP.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CGVTT.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CGVTables.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CGValue.h user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CodeGenABITypes.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CodeGenAction.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CodeGenFunction.h user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CodeGenModule.h user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CodeGenPGO.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTBAA.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTBAA.h user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTypeCache.h user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTypes.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CodeGenTypes.h user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CoverageMappingGen.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/CoverageMappingGen.h user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/ItaniumCXXABI.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/MicrosoftCXXABI.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/ModuleBuilder.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/SanitizerMetadata.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/TargetInfo.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/CodeGen/TargetInfo.h user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/Compilation.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/Distro.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/Driver.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/DriverOptions.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/Job.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/SanitizerArgs.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChain.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/AMDGPU.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/AMDGPU.h user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/Ananas.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/AArch64.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/ARM.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/ARM.h user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/Mips.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/Mips.h user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/PPC.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/PPC.h user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/Arch/X86.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/BareMetal.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/BareMetal.h user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/Clang.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/Clang.h user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/CloudABI.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/CommonArgs.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/CommonArgs.h user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/CrossWindows.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/Cuda.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/Cuda.h user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/Darwin.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/Darwin.h user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/DragonFly.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/FreeBSD.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/FreeBSD.h user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/Fuchsia.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/Fuchsia.h user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/Gnu.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/Hexagon.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/Hexagon.h user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/Linux.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/MSVC.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/MinGW.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/MinGW.h user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/Minix.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/Myriad.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/NaCl.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/NetBSD.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/NetBSD.h user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/OpenBSD.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/PS4CPU.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/Solaris.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/WebAssembly.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/ToolChains/WebAssembly.h user/jeff/numa/contrib/llvm/tools/clang/lib/Driver/XRayArgs.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Format/BreakableToken.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Format/BreakableToken.h user/jeff/numa/contrib/llvm/tools/clang/lib/Format/ContinuationIndenter.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Format/ContinuationIndenter.h user/jeff/numa/contrib/llvm/tools/clang/lib/Format/Format.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Format/FormatToken.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Format/FormatToken.h user/jeff/numa/contrib/llvm/tools/clang/lib/Format/FormatTokenLexer.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Format/FormatTokenLexer.h user/jeff/numa/contrib/llvm/tools/clang/lib/Format/NamespaceEndCommentsFixer.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Format/NamespaceEndCommentsFixer.h user/jeff/numa/contrib/llvm/tools/clang/lib/Format/SortJavaScriptImports.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Format/TokenAnalyzer.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Format/TokenAnalyzer.h user/jeff/numa/contrib/llvm/tools/clang/lib/Format/TokenAnnotator.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Format/TokenAnnotator.h user/jeff/numa/contrib/llvm/tools/clang/lib/Format/UnwrappedLineFormatter.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Format/UnwrappedLineFormatter.h user/jeff/numa/contrib/llvm/tools/clang/lib/Format/UnwrappedLineParser.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Format/UnwrappedLineParser.h user/jeff/numa/contrib/llvm/tools/clang/lib/Format/UsingDeclarationsSorter.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Format/UsingDeclarationsSorter.h user/jeff/numa/contrib/llvm/tools/clang/lib/Format/WhitespaceManager.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Format/WhitespaceManager.h user/jeff/numa/contrib/llvm/tools/clang/lib/Frontend/ASTUnit.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Frontend/CompilerInstance.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Frontend/CompilerInvocation.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Frontend/FrontendAction.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Frontend/FrontendActions.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Frontend/InitHeaderSearch.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Frontend/InitPreprocessor.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Frontend/MultiplexConsumer.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Frontend/PrecompiledPreamble.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Frontend/PrintPreprocessedOutput.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Frontend/Rewrite/FrontendActions.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Frontend/Rewrite/RewriteModernObjC.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Frontend/Rewrite/RewriteObjC.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Frontend/TextDiagnosticBuffer.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Frontend/VerifyDiagnosticConsumer.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/FrontendTool/ExecuteCompilerInvocation.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_cmath.h user/jeff/numa/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_intrinsics.h user/jeff/numa/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_math_forward_declares.h user/jeff/numa/contrib/llvm/tools/clang/lib/Headers/__clang_cuda_runtime_wrapper.h user/jeff/numa/contrib/llvm/tools/clang/lib/Headers/avx2intrin.h user/jeff/numa/contrib/llvm/tools/clang/lib/Headers/avx512bwintrin.h user/jeff/numa/contrib/llvm/tools/clang/lib/Headers/avx512cdintrin.h user/jeff/numa/contrib/llvm/tools/clang/lib/Headers/avx512dqintrin.h user/jeff/numa/contrib/llvm/tools/clang/lib/Headers/avx512fintrin.h user/jeff/numa/contrib/llvm/tools/clang/lib/Headers/avx512vlbwintrin.h user/jeff/numa/contrib/llvm/tools/clang/lib/Headers/avx512vlcdintrin.h user/jeff/numa/contrib/llvm/tools/clang/lib/Headers/avx512vldqintrin.h user/jeff/numa/contrib/llvm/tools/clang/lib/Headers/avx512vlintrin.h user/jeff/numa/contrib/llvm/tools/clang/lib/Headers/clflushoptintrin.h user/jeff/numa/contrib/llvm/tools/clang/lib/Headers/cpuid.h user/jeff/numa/contrib/llvm/tools/clang/lib/Headers/cuda_wrappers/algorithm user/jeff/numa/contrib/llvm/tools/clang/lib/Headers/cuda_wrappers/new user/jeff/numa/contrib/llvm/tools/clang/lib/Headers/emmintrin.h user/jeff/numa/contrib/llvm/tools/clang/lib/Headers/float.h user/jeff/numa/contrib/llvm/tools/clang/lib/Headers/fma4intrin.h user/jeff/numa/contrib/llvm/tools/clang/lib/Headers/fmaintrin.h user/jeff/numa/contrib/llvm/tools/clang/lib/Headers/immintrin.h user/jeff/numa/contrib/llvm/tools/clang/lib/Headers/intrin.h user/jeff/numa/contrib/llvm/tools/clang/lib/Headers/opencl-c.h user/jeff/numa/contrib/llvm/tools/clang/lib/Headers/pmmintrin.h user/jeff/numa/contrib/llvm/tools/clang/lib/Headers/smmintrin.h user/jeff/numa/contrib/llvm/tools/clang/lib/Headers/stdbool.h user/jeff/numa/contrib/llvm/tools/clang/lib/Headers/unwind.h user/jeff/numa/contrib/llvm/tools/clang/lib/Headers/xmmintrin.h user/jeff/numa/contrib/llvm/tools/clang/lib/Index/CodegenNameGenerator.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Index/CommentToXML.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Index/IndexBody.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Index/IndexDecl.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Index/IndexSymbol.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Index/IndexTypeSourceInfo.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Index/IndexingAction.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Index/IndexingContext.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Index/USRGeneration.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Lex/HeaderSearch.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Lex/Lexer.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Lex/LiteralSupport.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Lex/MacroArgs.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Lex/MacroInfo.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Lex/ModuleMap.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Lex/PPDirectives.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Lex/PPLexerChange.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Lex/PPMacroExpansion.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Lex/PTHLexer.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Lex/Pragma.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Lex/PreprocessingRecord.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Lex/Preprocessor.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Lex/PreprocessorLexer.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Lex/TokenConcatenation.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Lex/TokenLexer.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Parse/ParseCXXInlineMethods.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Parse/ParseDecl.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Parse/ParseDeclCXX.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Parse/ParseExpr.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Parse/ParseExprCXX.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Parse/ParseObjc.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Parse/ParseOpenMP.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Parse/ParsePragma.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Parse/ParseStmt.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Parse/ParseStmtAsm.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Parse/ParseTemplate.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Parse/ParseTentative.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Parse/Parser.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Rewrite/HTMLRewrite.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Sema/AnalysisBasedWarnings.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Sema/AttributeList.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Sema/CodeCompleteConsumer.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Sema/DeclSpec.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Sema/JumpDiagnostics.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Sema/MultiplexExternalSemaSource.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Sema/Sema.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Sema/SemaAttr.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Sema/SemaCast.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Sema/SemaChecking.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Sema/SemaCodeComplete.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Sema/SemaCoroutine.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Sema/SemaDecl.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Sema/SemaDeclAttr.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Sema/SemaDeclCXX.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Sema/SemaDeclObjC.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Sema/SemaExceptionSpec.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Sema/SemaExpr.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Sema/SemaExprCXX.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Sema/SemaExprMember.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Sema/SemaExprObjC.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Sema/SemaInit.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Sema/SemaLambda.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Sema/SemaLookup.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Sema/SemaObjCProperty.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Sema/SemaOpenMP.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Sema/SemaOverload.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Sema/SemaPseudoObject.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Sema/SemaStmt.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Sema/SemaStmtAsm.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Sema/SemaStmtAttr.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Sema/SemaTemplate.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Sema/SemaTemplateDeduction.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Sema/SemaTemplateInstantiate.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Sema/SemaTemplateInstantiateDecl.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Sema/SemaTemplateVariadic.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Sema/SemaType.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Sema/TreeTransform.h user/jeff/numa/contrib/llvm/tools/clang/lib/Serialization/ASTCommon.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Serialization/ASTCommon.h user/jeff/numa/contrib/llvm/tools/clang/lib/Serialization/ASTReader.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Serialization/ASTReaderDecl.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Serialization/ASTReaderInternals.h user/jeff/numa/contrib/llvm/tools/clang/lib/Serialization/ASTReaderStmt.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Serialization/ASTWriter.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Serialization/ASTWriterDecl.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Serialization/ASTWriterStmt.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Serialization/GlobalModuleIndex.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Serialization/ModuleManager.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Serialization/MultiOnDiskHashTable.h user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ArrayBoundCheckerV2.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/BlockInCriticalSectionChecker.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CStringChecker.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CStringSyntaxChecker.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CallAndMessageChecker.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CheckSecuritySyntaxOnly.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/CloneChecker.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ConversionChecker.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DebugCheckers.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/DynamicTypePropagation.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ExprInspectionChecker.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/GenericTaintChecker.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/IdenticalExprChecker.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/MisusedMovedObjectChecker.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCContainersASTChecker.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/ObjCSuperDeallocChecker.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PaddingChecker.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/PthreadLockChecker.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/RetainCountChecker.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/StackAddrEscapeChecker.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefResultChecker.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UndefinedAssignmentChecker.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/UnreachableCodeChecker.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Checkers/VirtualCallChecker.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/AnalysisManager.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/AnalyzerOptions.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BasicValueFactory.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BugReporter.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CallEvent.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CheckerContext.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/CoreEngine.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Environment.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngine.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineC.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ExprEngineCXX.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/HTMLDiagnostics.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/IssueHash.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/MemRegion.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/PathDiagnostic.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/PrettyStackTraceLocationContext.h user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/ProgramState.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RangeConstraintManager.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RangedConstraintManager.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/RegionStore.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SVals.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SimpleSValBuilder.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/Store.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Core/SymbolManager.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Tooling/ArgumentsAdjusters.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Tooling/CommonOptionsParser.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Tooling/CompilationDatabase.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Tooling/Core/Replacement.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Tooling/Refactoring/AtomicChange.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Rename/RenamingAction.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Rename/USRFindingAction.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Tooling/Refactoring/Rename/USRLocFinder.cpp user/jeff/numa/contrib/llvm/tools/clang/lib/Tooling/Tooling.cpp user/jeff/numa/contrib/llvm/tools/clang/tools/clang-format/ClangFormat.cpp user/jeff/numa/contrib/llvm/tools/clang/tools/driver/cc1as_main.cpp user/jeff/numa/contrib/llvm/tools/clang/tools/driver/driver.cpp user/jeff/numa/contrib/llvm/tools/clang/utils/TableGen/ClangAttrEmitter.cpp user/jeff/numa/contrib/llvm/tools/clang/utils/TableGen/NeonEmitter.cpp user/jeff/numa/contrib/llvm/tools/clang/utils/TableGen/TableGen.cpp user/jeff/numa/contrib/llvm/tools/clang/utils/TableGen/TableGenBackends.h user/jeff/numa/contrib/llvm/tools/llc/llc.cpp user/jeff/numa/contrib/llvm/tools/lld/.arcconfig user/jeff/numa/contrib/llvm/tools/lld/CMakeLists.txt user/jeff/numa/contrib/llvm/tools/lld/CODE_OWNERS.TXT user/jeff/numa/contrib/llvm/tools/lld/COFF/CMakeLists.txt user/jeff/numa/contrib/llvm/tools/lld/COFF/Chunks.cpp user/jeff/numa/contrib/llvm/tools/lld/COFF/Chunks.h user/jeff/numa/contrib/llvm/tools/lld/COFF/Config.h user/jeff/numa/contrib/llvm/tools/lld/COFF/DLL.cpp user/jeff/numa/contrib/llvm/tools/lld/COFF/Driver.cpp user/jeff/numa/contrib/llvm/tools/lld/COFF/Driver.h user/jeff/numa/contrib/llvm/tools/lld/COFF/DriverUtils.cpp user/jeff/numa/contrib/llvm/tools/lld/COFF/ICF.cpp user/jeff/numa/contrib/llvm/tools/lld/COFF/InputFiles.cpp user/jeff/numa/contrib/llvm/tools/lld/COFF/InputFiles.h user/jeff/numa/contrib/llvm/tools/lld/COFF/LTO.cpp user/jeff/numa/contrib/llvm/tools/lld/COFF/LTO.h user/jeff/numa/contrib/llvm/tools/lld/COFF/MapFile.cpp user/jeff/numa/contrib/llvm/tools/lld/COFF/MarkLive.cpp user/jeff/numa/contrib/llvm/tools/lld/COFF/Options.td user/jeff/numa/contrib/llvm/tools/lld/COFF/PDB.cpp user/jeff/numa/contrib/llvm/tools/lld/COFF/PDB.h user/jeff/numa/contrib/llvm/tools/lld/COFF/Strings.cpp user/jeff/numa/contrib/llvm/tools/lld/COFF/Strings.h user/jeff/numa/contrib/llvm/tools/lld/COFF/SymbolTable.cpp user/jeff/numa/contrib/llvm/tools/lld/COFF/SymbolTable.h user/jeff/numa/contrib/llvm/tools/lld/COFF/Symbols.cpp user/jeff/numa/contrib/llvm/tools/lld/COFF/Symbols.h user/jeff/numa/contrib/llvm/tools/lld/COFF/Writer.cpp user/jeff/numa/contrib/llvm/tools/lld/COFF/Writer.h user/jeff/numa/contrib/llvm/tools/lld/ELF/Arch/AArch64.cpp user/jeff/numa/contrib/llvm/tools/lld/ELF/Arch/AMDGPU.cpp user/jeff/numa/contrib/llvm/tools/lld/ELF/Arch/ARM.cpp user/jeff/numa/contrib/llvm/tools/lld/ELF/Arch/AVR.cpp user/jeff/numa/contrib/llvm/tools/lld/ELF/Arch/Mips.cpp user/jeff/numa/contrib/llvm/tools/lld/ELF/Arch/MipsArchTree.cpp user/jeff/numa/contrib/llvm/tools/lld/ELF/Arch/PPC.cpp user/jeff/numa/contrib/llvm/tools/lld/ELF/Arch/PPC64.cpp user/jeff/numa/contrib/llvm/tools/lld/ELF/Arch/SPARCV9.cpp user/jeff/numa/contrib/llvm/tools/lld/ELF/Arch/X86.cpp user/jeff/numa/contrib/llvm/tools/lld/ELF/Arch/X86_64.cpp user/jeff/numa/contrib/llvm/tools/lld/ELF/CMakeLists.txt user/jeff/numa/contrib/llvm/tools/lld/ELF/Config.h user/jeff/numa/contrib/llvm/tools/lld/ELF/Driver.cpp user/jeff/numa/contrib/llvm/tools/lld/ELF/Driver.h user/jeff/numa/contrib/llvm/tools/lld/ELF/DriverUtils.cpp user/jeff/numa/contrib/llvm/tools/lld/ELF/EhFrame.cpp user/jeff/numa/contrib/llvm/tools/lld/ELF/EhFrame.h user/jeff/numa/contrib/llvm/tools/lld/ELF/Filesystem.cpp user/jeff/numa/contrib/llvm/tools/lld/ELF/Filesystem.h user/jeff/numa/contrib/llvm/tools/lld/ELF/GdbIndex.cpp user/jeff/numa/contrib/llvm/tools/lld/ELF/GdbIndex.h user/jeff/numa/contrib/llvm/tools/lld/ELF/ICF.cpp user/jeff/numa/contrib/llvm/tools/lld/ELF/InputFiles.cpp user/jeff/numa/contrib/llvm/tools/lld/ELF/InputFiles.h user/jeff/numa/contrib/llvm/tools/lld/ELF/InputSection.cpp user/jeff/numa/contrib/llvm/tools/lld/ELF/InputSection.h user/jeff/numa/contrib/llvm/tools/lld/ELF/LTO.cpp user/jeff/numa/contrib/llvm/tools/lld/ELF/LTO.h user/jeff/numa/contrib/llvm/tools/lld/ELF/LinkerScript.cpp user/jeff/numa/contrib/llvm/tools/lld/ELF/LinkerScript.h user/jeff/numa/contrib/llvm/tools/lld/ELF/MapFile.cpp user/jeff/numa/contrib/llvm/tools/lld/ELF/MapFile.h user/jeff/numa/contrib/llvm/tools/lld/ELF/MarkLive.cpp user/jeff/numa/contrib/llvm/tools/lld/ELF/Options.td user/jeff/numa/contrib/llvm/tools/lld/ELF/OutputSections.cpp user/jeff/numa/contrib/llvm/tools/lld/ELF/OutputSections.h user/jeff/numa/contrib/llvm/tools/lld/ELF/Relocations.cpp user/jeff/numa/contrib/llvm/tools/lld/ELF/Relocations.h user/jeff/numa/contrib/llvm/tools/lld/ELF/ScriptLexer.cpp user/jeff/numa/contrib/llvm/tools/lld/ELF/ScriptLexer.h user/jeff/numa/contrib/llvm/tools/lld/ELF/ScriptParser.cpp user/jeff/numa/contrib/llvm/tools/lld/ELF/ScriptParser.h user/jeff/numa/contrib/llvm/tools/lld/ELF/Strings.cpp user/jeff/numa/contrib/llvm/tools/lld/ELF/Strings.h user/jeff/numa/contrib/llvm/tools/lld/ELF/SymbolTable.cpp user/jeff/numa/contrib/llvm/tools/lld/ELF/SymbolTable.h user/jeff/numa/contrib/llvm/tools/lld/ELF/Symbols.cpp user/jeff/numa/contrib/llvm/tools/lld/ELF/Symbols.h user/jeff/numa/contrib/llvm/tools/lld/ELF/SyntheticSections.cpp user/jeff/numa/contrib/llvm/tools/lld/ELF/SyntheticSections.h user/jeff/numa/contrib/llvm/tools/lld/ELF/Target.cpp user/jeff/numa/contrib/llvm/tools/lld/ELF/Target.h user/jeff/numa/contrib/llvm/tools/lld/ELF/Thunks.cpp user/jeff/numa/contrib/llvm/tools/lld/ELF/Thunks.h user/jeff/numa/contrib/llvm/tools/lld/ELF/Writer.cpp user/jeff/numa/contrib/llvm/tools/lld/ELF/Writer.h user/jeff/numa/contrib/llvm/tools/lld/FREEBSD-Xlist user/jeff/numa/contrib/llvm/tools/lld/README.md user/jeff/numa/contrib/llvm/tools/lld/include/lld/Core/Atom.h user/jeff/numa/contrib/llvm/tools/lld/include/lld/Core/DefinedAtom.h user/jeff/numa/contrib/llvm/tools/lld/include/lld/Core/Error.h user/jeff/numa/contrib/llvm/tools/lld/include/lld/Core/LinkingContext.h user/jeff/numa/contrib/llvm/tools/lld/include/lld/Core/PassManager.h user/jeff/numa/contrib/llvm/tools/lld/include/lld/Core/Reader.h user/jeff/numa/contrib/llvm/tools/lld/include/lld/Core/SymbolTable.h user/jeff/numa/contrib/llvm/tools/lld/include/lld/Core/Writer.h user/jeff/numa/contrib/llvm/tools/lld/include/lld/ReaderWriter/YamlContext.h user/jeff/numa/contrib/llvm/tools/lld/lib/CMakeLists.txt user/jeff/numa/contrib/llvm/tools/lld/lib/Core/CMakeLists.txt user/jeff/numa/contrib/llvm/tools/lld/lib/Core/Resolver.cpp user/jeff/numa/contrib/llvm/tools/lld/lib/Core/SymbolTable.cpp user/jeff/numa/contrib/llvm/tools/lld/lib/Driver/CMakeLists.txt user/jeff/numa/contrib/llvm/tools/lld/lib/Driver/DarwinLdDriver.cpp user/jeff/numa/contrib/llvm/tools/lld/lib/ReaderWriter/CMakeLists.txt user/jeff/numa/contrib/llvm/tools/lld/lib/ReaderWriter/FileArchive.cpp user/jeff/numa/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ArchHandler.h user/jeff/numa/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/CMakeLists.txt user/jeff/numa/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/CompactUnwindPass.cpp user/jeff/numa/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/FlatNamespaceFile.h user/jeff/numa/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/GOTPass.cpp user/jeff/numa/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachOLinkingContext.cpp user/jeff/numa/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFile.h user/jeff/numa/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryReader.cpp user/jeff/numa/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryUtils.h user/jeff/numa/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileBinaryWriter.cpp user/jeff/numa/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileFromAtoms.cpp user/jeff/numa/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileToAtoms.cpp user/jeff/numa/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/MachONormalizedFileYAML.cpp user/jeff/numa/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ObjCPass.cpp user/jeff/numa/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/ShimPass.cpp user/jeff/numa/contrib/llvm/tools/lld/lib/ReaderWriter/MachO/StubsPass.cpp user/jeff/numa/contrib/llvm/tools/lld/lib/ReaderWriter/YAML/ReaderWriterYAML.cpp user/jeff/numa/contrib/llvm/tools/lld/tools/lld/CMakeLists.txt user/jeff/numa/contrib/llvm/tools/lld/tools/lld/lld.cpp user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/API/LLDB.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/API/SBBreakpoint.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/API/SBBreakpointLocation.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/API/SBCommandInterpreter.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/API/SBDebugger.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/API/SBDefines.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/API/SBError.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/API/SBFileSpec.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/API/SBProcess.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/API/SBStream.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/API/SBStringList.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/API/SBStructuredData.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/API/SBTarget.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/API/SBThread.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Breakpoint/Breakpoint.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointIDList.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointList.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointLocation.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Breakpoint/BreakpointOptions.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Core/Disassembler.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Core/EmulateInstruction.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Core/IOHandler.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Core/MappedHash.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Core/Module.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Core/ModuleSpec.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Core/PluginManager.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Core/RangeMap.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Core/Section.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Expression/DWARFExpression.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Expression/ExpressionParser.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Expression/IRExecutionUnit.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Host/Config.h.cmake user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Host/Host.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Host/HostInfoBase.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Host/MainLoop.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Host/PseudoTerminal.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeProcessProtocol.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeRegisterContext.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Host/common/NativeThreadProtocol.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Interpreter/Args.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Interpreter/CommandInterpreter.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionGroupArchitecture.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueArch.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Interpreter/OptionValueFileSpec.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Symbol/ArmUnwindInfo.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Symbol/ClangASTContext.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Symbol/CompilerType.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Symbol/DeclVendor.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Symbol/FuncUnwinders.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Symbol/GoASTContext.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Symbol/JavaASTContext.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Symbol/OCamlASTContext.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Symbol/ObjectFile.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Symbol/TypeSystem.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Target/Platform.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Target/Process.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Target/ProcessInfo.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Target/ProcessLaunchInfo.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Target/Target.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Target/UnwindAssembly.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Utility/DataBufferLLVM.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Utility/DataExtractor.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Utility/FileSpec.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Utility/Log.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Utility/Logging.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Utility/SharingPtr.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Utility/Status.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Utility/StringList.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/Utility/UUID.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/lldb-enumerations.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/lldb-forward.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/lldb-private-defines.h user/jeff/numa/contrib/llvm/tools/lldb/include/lldb/lldb-private-forward.h user/jeff/numa/contrib/llvm/tools/lldb/source/API/SBBreakpoint.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/API/SBBreakpointLocation.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/API/SBCommandInterpreter.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/API/SBDebugger.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/API/SBInstruction.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/API/SBPlatform.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/API/SBProcess.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/API/SBTarget.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/API/SBType.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/API/SystemInitializerFull.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Breakpoint/Breakpoint.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointID.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointIDList.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointList.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointLocation.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointLocationList.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Breakpoint/BreakpointOptions.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Commands/CommandCompletions.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Commands/CommandObjectBreakpoint.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Commands/CommandObjectBreakpoint.h user/jeff/numa/contrib/llvm/tools/lldb/source/Commands/CommandObjectBreakpointCommand.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Commands/CommandObjectDisassemble.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Commands/CommandObjectDisassemble.h user/jeff/numa/contrib/llvm/tools/lldb/source/Commands/CommandObjectExpression.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Commands/CommandObjectFrame.h user/jeff/numa/contrib/llvm/tools/lldb/source/Commands/CommandObjectPlatform.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Commands/CommandObjectSource.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Commands/CommandObjectTarget.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Commands/CommandObjectTarget.h user/jeff/numa/contrib/llvm/tools/lldb/source/Commands/CommandObjectThread.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Core/Address.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Core/AddressRange.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Core/Debugger.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Core/DumpDataExtractor.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Core/FileSpecList.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Core/FormatEntity.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Core/IOHandler.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Core/Module.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Core/ModuleList.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Core/PluginManager.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Core/RegisterValue.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Core/Section.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Core/Value.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Core/ValueObjectDynamicValue.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Core/ValueObjectMemory.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Core/ValueObjectVariable.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Expression/DWARFExpression.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Expression/IRExecutionUnit.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Expression/IRInterpreter.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Host/common/Host.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Host/common/HostInfoBase.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Host/common/MainLoop.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Host/common/NativeProcessProtocol.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Host/common/NativeRegisterContext.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Host/common/NativeThreadProtocol.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Host/common/PseudoTerminal.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Host/common/Socket.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Host/common/Symbols.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Host/common/XML.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Host/freebsd/Host.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Host/posix/HostThreadPosix.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Host/posix/ProcessLauncherPosixFork.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Initialization/SystemInitializerCommon.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Interpreter/Args.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Interpreter/CommandInterpreter.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Interpreter/CommandObject.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupArchitecture.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Interpreter/OptionGroupFormat.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Interpreter/OptionValueDictionary.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Interpreter/OptionValueFileSpec.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Interpreter/ScriptInterpreter.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/ABI/MacOSX-arm/ABIMacOSX_arm.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-arm64/ABISysV_arm64.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-i386/ABISysV_i386.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-ppc/ABISysV_ppc.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-ppc64/ABISysV_ppc64.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/ABI/SysV-x86_64/ABISysV_x86_64.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Disassembler/llvm/DisassemblerLLVMC.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Hexagon-DYLD/HexagonDYLDRendezvous.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/POSIX-DYLD/DYLDRendezvous.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/DynamicLoader/Windows-DYLD/DynamicLoaderWindowsDYLD.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangASTSource.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionDeclMap.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangExpressionParser.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangFunctionCaller.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangModulesDeclVendor.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangUserExpression.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/ExpressionParser/Clang/ClangUtilityFunction.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM/EmulateInstructionARM.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM/EmulationStateARM.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Instruction/ARM64/EmulateInstructionARM64.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Instruction/MIPS/EmulateInstructionMIPS.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Instruction/MIPS64/EmulateInstructionMIPS64.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusLanguage.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/CPlusPlusNameParser.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxx.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxx.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxInitializerList.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxList.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxMap.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxUnorderedMap.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibCxxVector.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Language/CPlusPlus/LibStdcpp.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSArray.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSDictionary.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Language/ObjC/NSSet.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCDeclVendor.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCDeclVendor.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntime.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/ObjC/AppleObjCRuntime/AppleObjCRuntimeV2.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/LanguageRuntime/RenderScript/RenderScriptRuntime/RenderScriptRuntime.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/ObjectContainer/BSD-Archive/ObjectContainerBSDArchive.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/JIT/ObjectFileJIT.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/ObjectFile/JIT/ObjectFileJIT.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/OperatingSystem/Python/OperatingSystemPython.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Platform/NetBSD/PlatformNetBSD.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Platform/OpenBSD/PlatformOpenBSD.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Platform/POSIX/PlatformPOSIX.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/DarwinProcessLauncher.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/MachException.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/Darwin/NativeProcessDarwin.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessFreeBSD.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/ProcessMonitor.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIX.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_x86.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/FreeBSD/RegisterContextPOSIXProcessMonitor_x86.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeProcessNetBSD.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86_64.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeRegisterContextNetBSD_x86_64.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeThreadNetBSD.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/NetBSD/NativeThreadNetBSD.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/DynamicRegisterInfo.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/NativeRegisterContextRegisterInfo.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/NativeRegisterContextRegisterInfo.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextDarwin_arm64.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextLLDB.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMach_arm.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMach_i386.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextMach_x86_64.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_x86.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContextPOSIX_x86.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContext_mips.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterContext_x86.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfoInterface.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_i386.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/RegisterInfos_x86_64.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/StopInfoMachException.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/Utility/UnwindMacOSXFrameBackchain.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/ProcessElfCore.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/ProcessElfCore.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm64.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_arm64.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_mips64.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_mips64.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_powerpc.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_powerpc.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_s390x.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_s390x.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_x86_64.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/RegisterContextPOSIXCore_x86_64.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/ThreadElfCore.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/elf-core/ThreadElfCore.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteClientBase.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunication.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerCommon.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerLLGS.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServerPlatform.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/gdb-remote/ThreadGDBRemote.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/MinidumpParser.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/ProcessMinidump.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/ThreadMinidump.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/Process/minidump/ThreadMinidump.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/StructuredData/DarwinLog/StructuredDataDarwinLog.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DIERef.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserGo.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFCompileUnit.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDIE.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugAbbrev.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugAbbrev.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfo.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfo.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugInfoEntry.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFFormValue.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/DWARFFormValue.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARFDwo.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/SymbolFile/PDB/SymbolFilePDB.h user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/SymbolVendor/ELF/SymbolVendorELF.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/InstEmulation/UnwindAssemblyInstEmulation.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/x86/UnwindAssembly-x86.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Plugins/UnwindAssembly/x86/x86AssemblyInspectionEngine.h user/jeff/numa/contrib/llvm/tools/lldb/source/Symbol/ArmUnwindInfo.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Symbol/ClangASTContext.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Symbol/ClangExternalASTSourceCommon.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Symbol/CompactUnwindInfo.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Symbol/CompilerType.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Symbol/DWARFCallFrameInfo.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Symbol/JavaASTContext.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Symbol/ObjectFile.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Symbol/Symtab.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Symbol/Type.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Symbol/TypeSystem.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Symbol/Variable.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Target/PathMappingList.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Target/Platform.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Target/Process.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Target/ProcessLaunchInfo.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Target/RegisterContext.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Target/StackFrame.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Target/StopInfo.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Target/Target.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Target/Thread.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Target/ThreadPlanStepInRange.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Target/ThreadPlanTracer.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Target/UnixSignals.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Utility/DataBufferLLVM.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Utility/DataEncoder.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Utility/DataExtractor.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Utility/FileSpec.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Utility/JSON.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Utility/Log.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Utility/Logging.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Utility/SelectHelper.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Utility/Status.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Utility/StringExtractorGDBRemote.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Utility/StructuredData.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Utility/UUID.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/Utility/UriParser.cpp user/jeff/numa/contrib/llvm/tools/lldb/source/lldb.cpp user/jeff/numa/contrib/llvm/tools/lldb/tools/driver/Driver.cpp user/jeff/numa/contrib/llvm/tools/lldb/tools/lldb-mi/MICmdCmdVar.cpp user/jeff/numa/contrib/llvm/tools/lldb/tools/lldb-mi/MICmnLLDBDebuggerHandleEvents.cpp user/jeff/numa/contrib/llvm/tools/lldb/tools/lldb-mi/MIDriverMain.cpp user/jeff/numa/contrib/llvm/tools/lldb/tools/lldb-mi/MIUtilString.cpp user/jeff/numa/contrib/llvm/tools/lldb/tools/lldb-server/lldb-gdbserver.cpp user/jeff/numa/contrib/llvm/tools/lli/OrcLazyJIT.h user/jeff/numa/contrib/llvm/tools/lli/lli.cpp user/jeff/numa/contrib/llvm/tools/llvm-ar/llvm-ar.cpp user/jeff/numa/contrib/llvm/tools/llvm-as/llvm-as.cpp user/jeff/numa/contrib/llvm/tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp user/jeff/numa/contrib/llvm/tools/llvm-cov/CodeCoverage.cpp user/jeff/numa/contrib/llvm/tools/llvm-cov/CoverageExporterJson.cpp user/jeff/numa/contrib/llvm/tools/llvm-cov/CoverageFilters.cpp user/jeff/numa/contrib/llvm/tools/llvm-cov/CoverageFilters.h user/jeff/numa/contrib/llvm/tools/llvm-cov/CoverageReport.cpp user/jeff/numa/contrib/llvm/tools/llvm-cov/CoverageReport.h user/jeff/numa/contrib/llvm/tools/llvm-cov/CoverageSummaryInfo.cpp user/jeff/numa/contrib/llvm/tools/llvm-cov/CoverageSummaryInfo.h user/jeff/numa/contrib/llvm/tools/llvm-cov/CoverageViewOptions.h user/jeff/numa/contrib/llvm/tools/llvm-cov/SourceCoverageView.cpp user/jeff/numa/contrib/llvm/tools/llvm-cov/SourceCoverageView.h user/jeff/numa/contrib/llvm/tools/llvm-cov/SourceCoverageViewHTML.cpp user/jeff/numa/contrib/llvm/tools/llvm-cov/SourceCoverageViewHTML.h user/jeff/numa/contrib/llvm/tools/llvm-cov/SourceCoverageViewText.cpp user/jeff/numa/contrib/llvm/tools/llvm-cov/SourceCoverageViewText.h user/jeff/numa/contrib/llvm/tools/llvm-cov/gcov.cpp user/jeff/numa/contrib/llvm/tools/llvm-cxxdump/llvm-cxxdump.cpp user/jeff/numa/contrib/llvm/tools/llvm-cxxfilt/llvm-cxxfilt.cpp user/jeff/numa/contrib/llvm/tools/llvm-diff/DiffConsumer.cpp user/jeff/numa/contrib/llvm/tools/llvm-diff/DiffLog.cpp user/jeff/numa/contrib/llvm/tools/llvm-dis/llvm-dis.cpp user/jeff/numa/contrib/llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp user/jeff/numa/contrib/llvm/tools/llvm-extract/llvm-extract.cpp user/jeff/numa/contrib/llvm/tools/llvm-link/llvm-link.cpp user/jeff/numa/contrib/llvm/tools/llvm-lto/llvm-lto.cpp user/jeff/numa/contrib/llvm/tools/llvm-lto2/llvm-lto2.cpp user/jeff/numa/contrib/llvm/tools/llvm-mc/llvm-mc.cpp user/jeff/numa/contrib/llvm/tools/llvm-modextract/llvm-modextract.cpp user/jeff/numa/contrib/llvm/tools/llvm-nm/llvm-nm.cpp user/jeff/numa/contrib/llvm/tools/llvm-objdump/COFFDump.cpp user/jeff/numa/contrib/llvm/tools/llvm-objdump/MachODump.cpp user/jeff/numa/contrib/llvm/tools/llvm-objdump/llvm-objdump.cpp user/jeff/numa/contrib/llvm/tools/llvm-pdbutil/BytesOutputStyle.cpp user/jeff/numa/contrib/llvm/tools/llvm-pdbutil/BytesOutputStyle.h user/jeff/numa/contrib/llvm/tools/llvm-pdbutil/Diff.cpp user/jeff/numa/contrib/llvm/tools/llvm-pdbutil/DumpOutputStyle.cpp user/jeff/numa/contrib/llvm/tools/llvm-pdbutil/DumpOutputStyle.h user/jeff/numa/contrib/llvm/tools/llvm-pdbutil/FormatUtil.cpp user/jeff/numa/contrib/llvm/tools/llvm-pdbutil/FormatUtil.h user/jeff/numa/contrib/llvm/tools/llvm-pdbutil/LinePrinter.cpp user/jeff/numa/contrib/llvm/tools/llvm-pdbutil/LinePrinter.h user/jeff/numa/contrib/llvm/tools/llvm-pdbutil/MinimalSymbolDumper.cpp user/jeff/numa/contrib/llvm/tools/llvm-pdbutil/MinimalSymbolDumper.h user/jeff/numa/contrib/llvm/tools/llvm-pdbutil/MinimalTypeDumper.cpp user/jeff/numa/contrib/llvm/tools/llvm-pdbutil/PdbYaml.cpp user/jeff/numa/contrib/llvm/tools/llvm-pdbutil/PrettyBuiltinDumper.cpp user/jeff/numa/contrib/llvm/tools/llvm-pdbutil/PrettyEnumDumper.cpp user/jeff/numa/contrib/llvm/tools/llvm-pdbutil/PrettyFunctionDumper.cpp user/jeff/numa/contrib/llvm/tools/llvm-pdbutil/PrettyTypedefDumper.cpp user/jeff/numa/contrib/llvm/tools/llvm-pdbutil/StreamUtil.cpp user/jeff/numa/contrib/llvm/tools/llvm-pdbutil/StreamUtil.h user/jeff/numa/contrib/llvm/tools/llvm-pdbutil/YAMLOutputStyle.cpp user/jeff/numa/contrib/llvm/tools/llvm-pdbutil/llvm-pdbutil.cpp user/jeff/numa/contrib/llvm/tools/llvm-pdbutil/llvm-pdbutil.h user/jeff/numa/contrib/llvm/tools/llvm-profdata/llvm-profdata.cpp user/jeff/numa/contrib/llvm/tools/llvm-readobj/ARMEHABIPrinter.h user/jeff/numa/contrib/llvm/tools/llvm-readobj/COFFDumper.cpp user/jeff/numa/contrib/llvm/tools/llvm-readobj/COFFImportDumper.cpp user/jeff/numa/contrib/llvm/tools/llvm-readobj/ELFDumper.cpp user/jeff/numa/contrib/llvm/tools/llvm-readobj/ObjDumper.h user/jeff/numa/contrib/llvm/tools/llvm-readobj/WasmDumper.cpp user/jeff/numa/contrib/llvm/tools/llvm-readobj/llvm-readobj.cpp user/jeff/numa/contrib/llvm/tools/llvm-rtdyld/llvm-rtdyld.cpp user/jeff/numa/contrib/llvm/tools/llvm-stress/llvm-stress.cpp user/jeff/numa/contrib/llvm/tools/llvm-symbolizer/llvm-symbolizer.cpp user/jeff/numa/contrib/llvm/tools/llvm-xray/llvm-xray.cc user/jeff/numa/contrib/llvm/tools/llvm-xray/xray-account.cc user/jeff/numa/contrib/llvm/tools/llvm-xray/xray-color-helper.cc user/jeff/numa/contrib/llvm/tools/llvm-xray/xray-converter.cc user/jeff/numa/contrib/llvm/tools/llvm-xray/xray-converter.h user/jeff/numa/contrib/llvm/tools/llvm-xray/xray-extract.cc user/jeff/numa/contrib/llvm/tools/llvm-xray/xray-graph.cc user/jeff/numa/contrib/llvm/tools/opt/NewPMDriver.cpp user/jeff/numa/contrib/llvm/tools/opt/NewPMDriver.h user/jeff/numa/contrib/llvm/tools/opt/PassPrinters.cpp user/jeff/numa/contrib/llvm/tools/opt/PassPrinters.h user/jeff/numa/contrib/llvm/tools/opt/opt.cpp user/jeff/numa/contrib/llvm/utils/TableGen/AsmMatcherEmitter.cpp user/jeff/numa/contrib/llvm/utils/TableGen/AsmWriterEmitter.cpp user/jeff/numa/contrib/llvm/utils/TableGen/Attributes.cpp user/jeff/numa/contrib/llvm/utils/TableGen/CallingConvEmitter.cpp user/jeff/numa/contrib/llvm/utils/TableGen/CodeGenDAGPatterns.cpp user/jeff/numa/contrib/llvm/utils/TableGen/CodeGenDAGPatterns.h user/jeff/numa/contrib/llvm/utils/TableGen/CodeGenInstruction.cpp user/jeff/numa/contrib/llvm/utils/TableGen/CodeGenInstruction.h user/jeff/numa/contrib/llvm/utils/TableGen/CodeGenIntrinsics.h user/jeff/numa/contrib/llvm/utils/TableGen/CodeGenRegisters.cpp user/jeff/numa/contrib/llvm/utils/TableGen/CodeGenRegisters.h user/jeff/numa/contrib/llvm/utils/TableGen/CodeGenSchedule.cpp user/jeff/numa/contrib/llvm/utils/TableGen/CodeGenSchedule.h user/jeff/numa/contrib/llvm/utils/TableGen/CodeGenTarget.cpp user/jeff/numa/contrib/llvm/utils/TableGen/CodeGenTarget.h user/jeff/numa/contrib/llvm/utils/TableGen/DAGISelEmitter.cpp user/jeff/numa/contrib/llvm/utils/TableGen/DAGISelMatcher.cpp user/jeff/numa/contrib/llvm/utils/TableGen/DAGISelMatcherEmitter.cpp user/jeff/numa/contrib/llvm/utils/TableGen/DAGISelMatcherGen.cpp user/jeff/numa/contrib/llvm/utils/TableGen/DFAPacketizerEmitter.cpp user/jeff/numa/contrib/llvm/utils/TableGen/FastISelEmitter.cpp user/jeff/numa/contrib/llvm/utils/TableGen/GlobalISelEmitter.cpp user/jeff/numa/contrib/llvm/utils/TableGen/InstrInfoEmitter.cpp user/jeff/numa/contrib/llvm/utils/TableGen/IntrinsicEmitter.cpp user/jeff/numa/contrib/llvm/utils/TableGen/OptParserEmitter.cpp user/jeff/numa/contrib/llvm/utils/TableGen/RegisterBankEmitter.cpp user/jeff/numa/contrib/llvm/utils/TableGen/RegisterInfoEmitter.cpp user/jeff/numa/contrib/llvm/utils/TableGen/SearchableTableEmitter.cpp user/jeff/numa/contrib/llvm/utils/TableGen/SequenceToOffsetTable.h user/jeff/numa/contrib/llvm/utils/TableGen/SubtargetEmitter.cpp user/jeff/numa/contrib/llvm/utils/TableGen/TableGen.cpp user/jeff/numa/contrib/llvm/utils/TableGen/TableGenBackends.h user/jeff/numa/contrib/llvm/utils/TableGen/X86DisassemblerTables.cpp user/jeff/numa/contrib/llvm/utils/TableGen/X86DisassemblerTables.h user/jeff/numa/contrib/llvm/utils/TableGen/X86EVEX2VEXTablesEmitter.cpp user/jeff/numa/contrib/llvm/utils/TableGen/X86RecognizableInstr.cpp user/jeff/numa/contrib/llvm/utils/TableGen/X86RecognizableInstr.h user/jeff/numa/etc/mtree/BSD.debug.dist user/jeff/numa/etc/mtree/BSD.usr.dist user/jeff/numa/lib/clang/freebsd_cc_version.h user/jeff/numa/lib/clang/headers/Makefile user/jeff/numa/lib/clang/include/clang/Basic/Version.inc user/jeff/numa/lib/clang/include/clang/Config/config.h user/jeff/numa/lib/clang/include/lldb/Host/Config.h user/jeff/numa/lib/clang/include/llvm/Config/config.h user/jeff/numa/lib/clang/include/llvm/Config/llvm-config.h user/jeff/numa/lib/clang/include/llvm/Support/VCSRevision.h user/jeff/numa/lib/clang/libclang/Makefile user/jeff/numa/lib/clang/liblldb/Makefile user/jeff/numa/lib/clang/libllvm/Makefile user/jeff/numa/lib/clang/libllvmminimal/Makefile user/jeff/numa/lib/libclang_rt/Makefile user/jeff/numa/lib/libclang_rt/Makefile.inc user/jeff/numa/lib/libclang_rt/asan/Makefile user/jeff/numa/lib/libclang_rt/asan_cxx/Makefile user/jeff/numa/lib/libclang_rt/asan_dynamic/Makefile user/jeff/numa/lib/libclang_rt/include/Makefile user/jeff/numa/lib/libclang_rt/profile/Makefile user/jeff/numa/lib/libclang_rt/safestack/Makefile user/jeff/numa/lib/libclang_rt/stats/Makefile user/jeff/numa/lib/libclang_rt/ubsan_standalone/Makefile user/jeff/numa/lib/libclang_rt/ubsan_standalone_cxx/Makefile user/jeff/numa/lib/libpmc/libpmc.c user/jeff/numa/lib/libsysdecode/Makefile user/jeff/numa/lib/libsysdecode/flags.c user/jeff/numa/lib/libsysdecode/mktables user/jeff/numa/lib/libsysdecode/sysdecode.3 user/jeff/numa/lib/libsysdecode/sysdecode.h user/jeff/numa/lib/libsysdecode/sysdecode_enum.3 user/jeff/numa/sbin/fsck_ffs/pass5.c user/jeff/numa/share/examples/etc/bsd-style-copyright user/jeff/numa/share/man/man4/Makefile user/jeff/numa/share/man/man5/src.conf.5 user/jeff/numa/share/mk/src.opts.mk user/jeff/numa/sys/amd64/conf/GENERIC user/jeff/numa/sys/amd64/conf/MINIMAL user/jeff/numa/sys/amd64/include/cpufunc.h user/jeff/numa/sys/arm/allwinner/aw_mmc.c user/jeff/numa/sys/arm/allwinner/aw_mmc.h user/jeff/numa/sys/arm/allwinner/files.allwinner user/jeff/numa/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c user/jeff/numa/sys/conf/NOTES user/jeff/numa/sys/conf/files.powerpc user/jeff/numa/sys/conf/options user/jeff/numa/sys/contrib/ipfilter/netinet/ip_ftp_pxy.c user/jeff/numa/sys/contrib/ipfilter/netinet/radix_ipf.c user/jeff/numa/sys/contrib/zstd/lib/freebsd/zstd_kfreebsd.h user/jeff/numa/sys/crypto/via/padlock_cipher.c user/jeff/numa/sys/dev/aacraid/aacraid.c user/jeff/numa/sys/dev/acpica/acpi.c user/jeff/numa/sys/dev/advansys/advansys.c user/jeff/numa/sys/dev/ath/if_ath_rx_edma.c user/jeff/numa/sys/dev/beri/virtio/virtio.c user/jeff/numa/sys/dev/bnxt/if_bnxt.c user/jeff/numa/sys/dev/bwn/if_bwn.c user/jeff/numa/sys/dev/bwn/if_bwn_phy_lp.c user/jeff/numa/sys/dev/ciss/ciss.c user/jeff/numa/sys/dev/cpuctl/cpuctl.c user/jeff/numa/sys/dev/cxgbe/crypto/t4_crypto.c user/jeff/numa/sys/dev/cxgbe/iw_cxgbe/iw_cxgbe.h user/jeff/numa/sys/dev/esp/ncr53c9x.c user/jeff/numa/sys/dev/extres/syscon/syscon.c user/jeff/numa/sys/dev/extres/syscon/syscon.h user/jeff/numa/sys/dev/extres/syscon/syscon_generic.c user/jeff/numa/sys/dev/fb/splash.c user/jeff/numa/sys/dev/gpio/gpiobus.c user/jeff/numa/sys/dev/if_ndis/if_ndis.c user/jeff/numa/sys/dev/iwi/if_iwi.c user/jeff/numa/sys/dev/kbd/kbd.c user/jeff/numa/sys/dev/liquidio/base/lio_request_manager.c user/jeff/numa/sys/dev/liquidio/lio_main.c user/jeff/numa/sys/dev/mmc/host/dwmmc_hisi.c user/jeff/numa/sys/dev/mmc/mmc.c user/jeff/numa/sys/dev/mmc/mmcsd.c user/jeff/numa/sys/dev/mpr/mpr.c user/jeff/numa/sys/dev/mpr/mpr_mapping.c user/jeff/numa/sys/dev/mps/mps.c user/jeff/numa/sys/dev/mps/mps_mapping.c user/jeff/numa/sys/dev/mpt/mpt_cam.c user/jeff/numa/sys/dev/mrsas/mrsas.c user/jeff/numa/sys/dev/mxge/if_mxge.c user/jeff/numa/sys/dev/netmap/if_ptnet.c user/jeff/numa/sys/dev/nvme/nvme_ns.c user/jeff/numa/sys/dev/ofw/ofw_fdt.c user/jeff/numa/sys/dev/pst/pst-iop.c user/jeff/numa/sys/dev/ral/rt2560.c user/jeff/numa/sys/dev/ral/rt2661.c user/jeff/numa/sys/dev/rp/rp.c user/jeff/numa/sys/dev/rp/rp_isa.c user/jeff/numa/sys/dev/rp/rp_pci.c user/jeff/numa/sys/dev/sdhci/sdhci.c user/jeff/numa/sys/dev/sound/midi/midi.c user/jeff/numa/sys/dev/sound/pci/hda/hdaa.c user/jeff/numa/sys/dev/syscons/fire/fire_saver.c user/jeff/numa/sys/dev/usb/serial/u3g.c user/jeff/numa/sys/dev/usb/usbdevs user/jeff/numa/sys/dev/virtio/console/virtio_console.c user/jeff/numa/sys/dev/virtio/mmio/virtio_mmio.c user/jeff/numa/sys/dev/virtio/network/if_vtnet.c user/jeff/numa/sys/dev/virtio/pci/virtio_pci.c user/jeff/numa/sys/dev/virtio/virtio.c user/jeff/numa/sys/dev/virtio/virtio_ids.h user/jeff/numa/sys/dev/vmware/vmxnet3/if_vmx.c user/jeff/numa/sys/dev/vnic/nicvf_queues.c user/jeff/numa/sys/dev/wbwd/wbwd.c user/jeff/numa/sys/dev/xen/blkback/blkback.c user/jeff/numa/sys/dev/xen/blkfront/blkfront.c user/jeff/numa/sys/dts/arm/bcm2836.dtsi user/jeff/numa/sys/fs/ext2fs/ext2_alloc.c user/jeff/numa/sys/fs/ext2fs/ext2_csum.c user/jeff/numa/sys/fs/ext2fs/ext2_dir.h user/jeff/numa/sys/fs/ext2fs/ext2_extattr.c user/jeff/numa/sys/fs/ext2fs/ext2_extattr.h user/jeff/numa/sys/fs/ext2fs/ext2_extents.c user/jeff/numa/sys/fs/ext2fs/ext2_extents.h user/jeff/numa/sys/fs/ext2fs/ext2_extern.h user/jeff/numa/sys/fs/ext2fs/ext2_inode_cnv.c user/jeff/numa/sys/fs/ext2fs/ext2_lookup.c user/jeff/numa/sys/fs/ext2fs/ext2_subr.c user/jeff/numa/sys/fs/ext2fs/ext2_vfsops.c user/jeff/numa/sys/fs/ext2fs/ext2_vnops.c user/jeff/numa/sys/fs/ext2fs/ext2fs.h user/jeff/numa/sys/fs/ext2fs/htree.h user/jeff/numa/sys/i386/conf/GENERIC user/jeff/numa/sys/kern/kern_fork.c user/jeff/numa/sys/kern/kern_rwlock.c user/jeff/numa/sys/kern/kern_sx.c user/jeff/numa/sys/kern/subr_clock.c user/jeff/numa/sys/kern/subr_kdb.c user/jeff/numa/sys/powerpc/aim/mmu_oea64.c user/jeff/numa/sys/powerpc/aim/slb.c user/jeff/numa/sys/powerpc/include/vmparam.h user/jeff/numa/sys/powerpc/ofw/ofw_machdep.c user/jeff/numa/sys/powerpc/powerpc/uma_machdep.c user/jeff/numa/sys/powerpc/ps3/platform_ps3.c user/jeff/numa/sys/sys/clock.h user/jeff/numa/sys/sys/param.h user/jeff/numa/sys/vm/uma_core.c user/jeff/numa/sys/vm/vm_domainset.c user/jeff/numa/sys/vm/vm_pageout.c user/jeff/numa/sys/vm/vm_phys.c user/jeff/numa/sys/vm/vm_phys.h user/jeff/numa/sys/x86/acpica/srat.c user/jeff/numa/sys/x86/include/bus.h user/jeff/numa/sys/x86/include/specialreg.h user/jeff/numa/sys/x86/include/x86_var.h user/jeff/numa/sys/x86/x86/identcpu.c user/jeff/numa/tools/build/mk/OptionalObsoleteFiles.inc user/jeff/numa/usr.bin/clang/Makefile user/jeff/numa/usr.bin/clang/bugpoint/bugpoint.1 user/jeff/numa/usr.bin/clang/clang-tblgen/Makefile user/jeff/numa/usr.bin/clang/clang/clang.1 user/jeff/numa/usr.bin/clang/llc/llc.1 user/jeff/numa/usr.bin/clang/lld/Makefile user/jeff/numa/usr.bin/clang/lli/lli.1 user/jeff/numa/usr.bin/clang/llvm-ar/llvm-ar.1 user/jeff/numa/usr.bin/clang/llvm-as/Makefile user/jeff/numa/usr.bin/clang/llvm-as/llvm-as.1 user/jeff/numa/usr.bin/clang/llvm-bcanalyzer/Makefile user/jeff/numa/usr.bin/clang/llvm-bcanalyzer/llvm-bcanalyzer.1 user/jeff/numa/usr.bin/clang/llvm-cov/llvm-cov.1 user/jeff/numa/usr.bin/clang/llvm-cxxdump/Makefile user/jeff/numa/usr.bin/clang/llvm-cxxfilt/Makefile user/jeff/numa/usr.bin/clang/llvm-diff/Makefile user/jeff/numa/usr.bin/clang/llvm-diff/llvm-diff.1 user/jeff/numa/usr.bin/clang/llvm-dis/llvm-dis.1 user/jeff/numa/usr.bin/clang/llvm-dwarfdump/Makefile user/jeff/numa/usr.bin/clang/llvm-dwarfdump/llvm-dwarfdump.1 user/jeff/numa/usr.bin/clang/llvm-extract/llvm-extract.1 user/jeff/numa/usr.bin/clang/llvm-link/Makefile user/jeff/numa/usr.bin/clang/llvm-link/llvm-link.1 user/jeff/numa/usr.bin/clang/llvm-modextract/Makefile user/jeff/numa/usr.bin/clang/llvm-nm/llvm-nm.1 user/jeff/numa/usr.bin/clang/llvm-pdbutil/Makefile user/jeff/numa/usr.bin/clang/llvm-profdata/llvm-profdata.1 user/jeff/numa/usr.bin/clang/llvm-symbolizer/llvm-symbolizer.1 user/jeff/numa/usr.bin/clang/llvm-tblgen/Makefile user/jeff/numa/usr.bin/clang/opt/opt.1 user/jeff/numa/usr.bin/limits/limits.1 user/jeff/numa/usr.bin/truss/syscall.h user/jeff/numa/usr.bin/truss/syscalls.c user/jeff/numa/usr.sbin/acpi/acpidb/Makefile user/jeff/numa/usr.sbin/timed/timed/extern.h user/jeff/numa/usr.sbin/timed/timed/slave.c Directory Properties: user/jeff/numa/ (props changed) user/jeff/numa/cddl/ (props changed) user/jeff/numa/cddl/contrib/opensolaris/ (props changed) user/jeff/numa/contrib/binutils/ (props changed) user/jeff/numa/contrib/compiler-rt/ (props changed) user/jeff/numa/contrib/elftoolchain/ (props changed) user/jeff/numa/contrib/gcc/ (props changed) user/jeff/numa/contrib/libc++/ (props changed) user/jeff/numa/contrib/llvm/ (props changed) user/jeff/numa/contrib/llvm/tools/clang/ (props changed) user/jeff/numa/contrib/llvm/tools/lld/ (props changed) user/jeff/numa/contrib/llvm/tools/lldb/ (props changed) user/jeff/numa/contrib/subversion/ (props changed) user/jeff/numa/lib/libedit/ (props changed) user/jeff/numa/sys/cddl/contrib/opensolaris/ (props changed) user/jeff/numa/sys/contrib/dev/acpica/ (props changed) user/jeff/numa/sys/contrib/ipfilter/ (props changed) user/jeff/numa/sys/contrib/zstd/ (props changed) Modified: user/jeff/numa/ObsoleteFiles.inc ============================================================================== --- user/jeff/numa/ObsoleteFiles.inc Mon Jan 15 01:09:10 2018 (r327988) +++ user/jeff/numa/ObsoleteFiles.inc Mon Jan 15 01:19:11 2018 (r327989) @@ -38,6 +38,123 @@ # xargs -n1 | sort | uniq -d; # done +# 20180114: new clang import which bumps version from 5.0.1 to 6.0.0. +OLD_FILES+=usr/lib/clang/5.0.1/include/sanitizer/allocator_interface.h +OLD_FILES+=usr/lib/clang/5.0.1/include/sanitizer/asan_interface.h +OLD_FILES+=usr/lib/clang/5.0.1/include/sanitizer/common_interface_defs.h +OLD_FILES+=usr/lib/clang/5.0.1/include/sanitizer/coverage_interface.h +OLD_FILES+=usr/lib/clang/5.0.1/include/sanitizer/dfsan_interface.h +OLD_FILES+=usr/lib/clang/5.0.1/include/sanitizer/esan_interface.h +OLD_FILES+=usr/lib/clang/5.0.1/include/sanitizer/linux_syscall_hooks.h +OLD_FILES+=usr/lib/clang/5.0.1/include/sanitizer/lsan_interface.h +OLD_FILES+=usr/lib/clang/5.0.1/include/sanitizer/msan_interface.h +OLD_FILES+=usr/lib/clang/5.0.1/include/sanitizer/tsan_interface.h +OLD_FILES+=usr/lib/clang/5.0.1/include/sanitizer/tsan_interface_atomic.h +OLD_DIRS+=usr/lib/clang/5.0.1/include/sanitizer +OLD_FILES+=usr/lib/clang/5.0.1/include/__clang_cuda_builtin_vars.h +OLD_FILES+=usr/lib/clang/5.0.1/include/__clang_cuda_cmath.h +OLD_FILES+=usr/lib/clang/5.0.1/include/__clang_cuda_complex_builtins.h +OLD_FILES+=usr/lib/clang/5.0.1/include/__clang_cuda_intrinsics.h +OLD_FILES+=usr/lib/clang/5.0.1/include/__clang_cuda_math_forward_declares.h +OLD_FILES+=usr/lib/clang/5.0.1/include/__clang_cuda_runtime_wrapper.h +OLD_FILES+=usr/lib/clang/5.0.1/include/__stddef_max_align_t.h +OLD_FILES+=usr/lib/clang/5.0.1/include/__wmmintrin_aes.h +OLD_FILES+=usr/lib/clang/5.0.1/include/__wmmintrin_pclmul.h +OLD_FILES+=usr/lib/clang/5.0.1/include/adxintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/altivec.h +OLD_FILES+=usr/lib/clang/5.0.1/include/ammintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/arm_acle.h +OLD_FILES+=usr/lib/clang/5.0.1/include/arm_neon.h +OLD_FILES+=usr/lib/clang/5.0.1/include/armintr.h +OLD_FILES+=usr/lib/clang/5.0.1/include/avx2intrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/avx512bwintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/avx512cdintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/avx512dqintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/avx512erintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/avx512fintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/avx512ifmaintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/avx512ifmavlintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/avx512pfintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/avx512vbmiintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/avx512vbmivlintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/avx512vlbwintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/avx512vlcdintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/avx512vldqintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/avx512vlintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/avx512vpopcntdqintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/avxintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/bmi2intrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/bmiintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/clflushoptintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/clzerointrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/cpuid.h +OLD_FILES+=usr/lib/clang/5.0.1/include/emmintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/f16cintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/fma4intrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/fmaintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/fxsrintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/htmintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/htmxlintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/ia32intrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/immintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/lwpintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/lzcntintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/mm3dnow.h +OLD_FILES+=usr/lib/clang/5.0.1/include/mm_malloc.h +OLD_FILES+=usr/lib/clang/5.0.1/include/mmintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/module.modulemap +OLD_FILES+=usr/lib/clang/5.0.1/include/msa.h +OLD_FILES+=usr/lib/clang/5.0.1/include/mwaitxintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/nmmintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/opencl-c.h +OLD_FILES+=usr/lib/clang/5.0.1/include/pkuintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/pmmintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/popcntintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/prfchwintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/rdseedintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/rtmintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/s390intrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/shaintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/smmintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/tbmintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/tmmintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/vadefs.h +OLD_FILES+=usr/lib/clang/5.0.1/include/vecintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/wmmintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/x86intrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/xmmintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/xopintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/xsavecintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/xsaveintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/xsaveoptintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/xsavesintrin.h +OLD_FILES+=usr/lib/clang/5.0.1/include/xtestintrin.h +OLD_DIRS+=usr/lib/clang/5.0.1/include +OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.asan-i386.a +OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.asan-i386.so +OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.asan-preinit-i386.a +OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.asan-preinit-x86_64.a +OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.asan-x86_64.a +OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.asan-x86_64.so +OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.asan_cxx-i386.a +OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.asan_cxx-x86_64.a +OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.profile-arm.a +OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.profile-armhf.a +OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.profile-i386.a +OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.profile-x86_64.a +OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.safestack-i386.a +OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.safestack-x86_64.a +OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.stats-i386.a +OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.stats-x86_64.a +OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.stats_client-i386.a +OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.stats_client-x86_64.a +OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.ubsan_standalone-i386.a +OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.ubsan_standalone-x86_64.a +OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.ubsan_standalone_cxx-i386.a +OLD_FILES+=usr/lib/clang/5.0.1/lib/freebsd/libclang_rt.ubsan_standalone_cxx-x86_64.a +OLD_DIRS+=usr/lib/clang/5.0.1/lib/freebsd +OLD_DIRS+=usr/lib/clang/5.0.1/lib +OLD_DIRS+=usr/lib/clang/5.0.1 # 20180109: Remove vestiges of digi(4) driver OLD_FILES+=usr/include/sys/digiio.h OLD_FILES+=usr/sbin/digictl Modified: user/jeff/numa/UPDATING ============================================================================== --- user/jeff/numa/UPDATING Mon Jan 15 01:09:10 2018 (r327988) +++ user/jeff/numa/UPDATING Mon Jan 15 01:19:11 2018 (r327989) @@ -51,6 +51,12 @@ NOTE TO PEOPLE WHO THINK THAT FreeBSD 12.x IS SLOW: ****************************** SPECIAL WARNING: ****************************** +20180114: + Clang, llvm, lld, lldb, compiler-rt and libc++ have been upgraded to + 6.0.0. Please see the 20141231 entry below for information about + prerequisites and upgrading, if you are not already using clang 3.5.0 + or higher. + 20180110: LLVM's lld linker is now used as the FreeBSD/amd64 bootstrap linker. This means it is used to link the kernel and userland libraries and Modified: user/jeff/numa/cddl/usr.sbin/dtrace/tests/tools/exclude.sh ============================================================================== --- user/jeff/numa/cddl/usr.sbin/dtrace/tests/tools/exclude.sh Mon Jan 15 01:09:10 2018 (r327988) +++ user/jeff/numa/cddl/usr.sbin/dtrace/tests/tools/exclude.sh Mon Jan 15 01:19:11 2018 (r327989) @@ -40,7 +40,6 @@ exclude EXFAIL common/misc/tst.include.ksh exclude EXFAIL common/safety/tst.copyin2.d exclude EXFAIL common/safety/tst.msgdsize.d exclude EXFAIL common/safety/tst.msgsize.d -exclude EXFAIL common/safety/tst.zonename.d exclude EXFAIL common/scalars/tst.misc.d exclude EXFAIL common/scalars/tst.selfarray2.d exclude EXFAIL common/sched/tst.enqueue.d Modified: user/jeff/numa/contrib/compiler-rt/include/sanitizer/allocator_interface.h ============================================================================== --- user/jeff/numa/contrib/compiler-rt/include/sanitizer/allocator_interface.h Mon Jan 15 01:09:10 2018 (r327988) +++ user/jeff/numa/contrib/compiler-rt/include/sanitizer/allocator_interface.h Mon Jan 15 01:19:11 2018 (r327989) @@ -32,7 +32,7 @@ extern "C" { size_t __sanitizer_get_allocated_size(const volatile void *p); /* Number of bytes, allocated and not yet freed by the application. */ - size_t __sanitizer_get_current_allocated_bytes(); + size_t __sanitizer_get_current_allocated_bytes(void); /* Number of bytes, mmaped by the allocator to fulfill allocation requests. Generally, for request of X bytes, allocator can reserve and add to free @@ -40,17 +40,17 @@ extern "C" { All these chunks count toward the heap size. Currently, allocator never releases memory to OS (instead, it just puts freed chunks to free lists). */ - size_t __sanitizer_get_heap_size(); + size_t __sanitizer_get_heap_size(void); /* Number of bytes, mmaped by the allocator, which can be used to fulfill allocation requests. When a user program frees memory chunk, it can first fall into quarantine and will count toward __sanitizer_get_free_bytes() later. */ - size_t __sanitizer_get_free_bytes(); + size_t __sanitizer_get_free_bytes(void); /* Number of bytes in unmapped pages, that are released to OS. Currently, always returns 0. */ - size_t __sanitizer_get_unmapped_bytes(); + size_t __sanitizer_get_unmapped_bytes(void); /* Malloc hooks that may be optionally provided by user. __sanitizer_malloc_hook(ptr, size) is called immediately after @@ -75,6 +75,13 @@ extern "C" { int __sanitizer_install_malloc_and_free_hooks( void (*malloc_hook)(const volatile void *, size_t), void (*free_hook)(const volatile void *)); + + /* Drains allocator quarantines (calling thread's and global ones), returns + freed memory back to OS and releases other non-essential internal allocator + resources in attempt to reduce process RSS. + Currently available with ASan only. + */ + void __sanitizer_purge_allocator(void); #ifdef __cplusplus } // extern "C" Modified: user/jeff/numa/contrib/compiler-rt/include/sanitizer/asan_interface.h ============================================================================== --- user/jeff/numa/contrib/compiler-rt/include/sanitizer/asan_interface.h Mon Jan 15 01:09:10 2018 (r327988) +++ user/jeff/numa/contrib/compiler-rt/include/sanitizer/asan_interface.h Mon Jan 15 01:19:11 2018 (r327989) @@ -64,19 +64,19 @@ extern "C" { // Useful for calling from a debugger to get information about an ASan error. // Returns 1 if an error has been (or is being) reported, otherwise returns 0. - int __asan_report_present(); + int __asan_report_present(void); // Useful for calling from a debugger to get information about an ASan error. // If an error has been (or is being) reported, the following functions return // the pc, bp, sp, address, access type (0 = read, 1 = write), access size and // bug description (e.g. "heap-use-after-free"). Otherwise they return 0. - void *__asan_get_report_pc(); - void *__asan_get_report_bp(); - void *__asan_get_report_sp(); - void *__asan_get_report_address(); - int __asan_get_report_access_type(); - size_t __asan_get_report_access_size(); - const char *__asan_get_report_description(); + void *__asan_get_report_pc(void); + void *__asan_get_report_bp(void); + void *__asan_get_report_sp(void); + void *__asan_get_report_address(void); + int __asan_get_report_access_type(void); + size_t __asan_get_report_access_size(void); + const char *__asan_get_report_description(void); // Useful for calling from the debugger to get information about a pointer. // Returns the category of the given pointer as a constant string. @@ -118,21 +118,21 @@ extern "C" { // User may provide function that would be called right when ASan detects // an error. This can be used to notice cases when ASan detects an error, but // the program crashes before ASan report is printed. - void __asan_on_error(); + void __asan_on_error(void); // Prints accumulated stats to stderr. Used for debugging. - void __asan_print_accumulated_stats(); + void __asan_print_accumulated_stats(void); // This function may be optionally provided by user and should return // a string containing ASan runtime options. See asan_flags.h for details. - const char* __asan_default_options(); + const char* __asan_default_options(void); // The following 2 functions facilitate garbage collection in presence of // asan's fake stack. // Returns an opaque handler to be used later in __asan_addr_is_in_fake_stack. // Returns NULL if the current thread does not have a fake stack. - void *__asan_get_current_fake_stack(); + void *__asan_get_current_fake_stack(void); // If fake_stack is non-NULL and addr belongs to a fake frame in // fake_stack, returns the address on real stack that corresponds to @@ -143,6 +143,10 @@ extern "C" { // fake_stack, but the owner thread need to be alive. void *__asan_addr_is_in_fake_stack(void *fake_stack, void *addr, void **beg, void **end); + + // Performs cleanup before a [[noreturn]] function. Must be called + // before things like _exit and execl to avoid false positives on stack. + void __asan_handle_no_return(void); #ifdef __cplusplus } // extern "C" Modified: user/jeff/numa/contrib/compiler-rt/include/sanitizer/common_interface_defs.h ============================================================================== --- user/jeff/numa/contrib/compiler-rt/include/sanitizer/common_interface_defs.h Mon Jan 15 01:09:10 2018 (r327988) +++ user/jeff/numa/contrib/compiler-rt/include/sanitizer/common_interface_defs.h Mon Jan 15 01:19:11 2018 (r327989) @@ -115,7 +115,7 @@ extern "C" { const void *beg, const void *mid, const void *end); // Print the stack trace leading to this call. Useful for debugging user code. - void __sanitizer_print_stack_trace(); + void __sanitizer_print_stack_trace(void); // Symbolizes the supplied 'pc' using the format string 'fmt'. // Outputs at most 'out_buf_size' bytes into 'out_buf'. Modified: user/jeff/numa/contrib/compiler-rt/include/sanitizer/coverage_interface.h ============================================================================== --- user/jeff/numa/contrib/compiler-rt/include/sanitizer/coverage_interface.h Mon Jan 15 01:09:10 2018 (r327988) +++ user/jeff/numa/contrib/compiler-rt/include/sanitizer/coverage_interface.h Mon Jan 15 01:19:11 2018 (r327989) @@ -20,10 +20,13 @@ extern "C" { #endif // Record and dump coverage info. - void __sanitizer_cov_dump(); + void __sanitizer_cov_dump(void); - // Dump collected coverage info. Sorts pcs by module into individual - // .sancov files. + // Clear collected coverage info. + void __sanitizer_cov_reset(void); + + // Dump collected coverage info. Sorts pcs by module into individual .sancov + // files. void __sanitizer_dump_coverage(const uintptr_t *pcs, uintptr_t len); #ifdef __cplusplus Modified: user/jeff/numa/contrib/compiler-rt/include/sanitizer/esan_interface.h ============================================================================== --- user/jeff/numa/contrib/compiler-rt/include/sanitizer/esan_interface.h Mon Jan 15 01:09:10 2018 (r327988) +++ user/jeff/numa/contrib/compiler-rt/include/sanitizer/esan_interface.h Mon Jan 15 01:19:11 2018 (r327989) @@ -37,11 +37,11 @@ extern "C" { // This function can be called mid-run (or at the end of a run for // a server process that doesn't shut down normally) to request that // data for that point in the run be reported from the tool. -void COMPILER_RT_WEAK __esan_report(); +void COMPILER_RT_WEAK __esan_report(void); // This function returns the number of samples that the esan tool has collected // to this point. This is useful for testing. -unsigned int COMPILER_RT_WEAK __esan_get_sample_count(); +unsigned int COMPILER_RT_WEAK __esan_get_sample_count(void); #ifdef __cplusplus } // extern "C" Copied: user/jeff/numa/contrib/compiler-rt/include/sanitizer/hwasan_interface.h (from r327986, head/contrib/compiler-rt/include/sanitizer/hwasan_interface.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/jeff/numa/contrib/compiler-rt/include/sanitizer/hwasan_interface.h Mon Jan 15 01:19:11 2018 (r327989, copy of r327986, head/contrib/compiler-rt/include/sanitizer/hwasan_interface.h) @@ -0,0 +1,33 @@ +//===-- sanitizer/asan_interface.h ------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file is a part of HWAddressSanitizer. +// +// Public interface header. +//===----------------------------------------------------------------------===// +#ifndef SANITIZER_HWASAN_INTERFACE_H +#define SANITIZER_HWASAN_INTERFACE_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + // This function may be optionally provided by user and should return + // a string containing HWASan runtime options. See asan_flags.h for details. + const char* __hwasan_default_options(void); + + void __hwasan_enable_allocator_tagging(void); + void __hwasan_disable_allocator_tagging(void); + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif // SANITIZER_HWASAN_INTERFACE_H Modified: user/jeff/numa/contrib/compiler-rt/include/sanitizer/lsan_interface.h ============================================================================== --- user/jeff/numa/contrib/compiler-rt/include/sanitizer/lsan_interface.h Mon Jan 15 01:09:10 2018 (r327988) +++ user/jeff/numa/contrib/compiler-rt/include/sanitizer/lsan_interface.h Mon Jan 15 01:19:11 2018 (r327989) @@ -21,8 +21,8 @@ extern "C" { #endif // Allocations made between calls to __lsan_disable() and __lsan_enable() will // be treated as non-leaks. Disable/enable pairs may be nested. - void __lsan_disable(); - void __lsan_enable(); + void __lsan_disable(void); + void __lsan_enable(void); // The heap object into which p points will be treated as a non-leak. void __lsan_ignore_object(const void *p); @@ -49,7 +49,7 @@ extern "C" { // the time of first invocation of this function. // By calling this function early during process shutdown, you can instruct // LSan to ignore shutdown-only leaks which happen later on. - void __lsan_do_leak_check(); + void __lsan_do_leak_check(void); // Check for leaks now. Returns zero if no leaks have been found or if leak // detection is disabled, non-zero otherwise. @@ -58,17 +58,23 @@ extern "C" { // terminate the process. It does not affect the behavior of // __lsan_do_leak_check() or the end-of-process leak check, and is not // affected by them. - int __lsan_do_recoverable_leak_check(); + int __lsan_do_recoverable_leak_check(void); // The user may optionally provide this function to disallow leak checking // for the program it is linked into (if the return value is non-zero). This // function must be defined as returning a constant value; any behavior beyond // that is unsupported. - int __lsan_is_turned_off(); + // To avoid dead stripping, you may need to define this function with + // __attribute__((used)) + int __lsan_is_turned_off(void); + // This function may be optionally provided by user and should return + // a string containing LSan runtime options. See lsan_flags.inc for details. + const char *__lsan_default_options(void); + // This function may be optionally provided by the user and should return // a string containing LSan suppressions. - const char *__lsan_default_suppressions(); + const char *__lsan_default_suppressions(void); #ifdef __cplusplus } // extern "C" Modified: user/jeff/numa/contrib/compiler-rt/include/sanitizer/msan_interface.h ============================================================================== --- user/jeff/numa/contrib/compiler-rt/include/sanitizer/msan_interface.h Mon Jan 15 01:09:10 2018 (r327988) +++ user/jeff/numa/contrib/compiler-rt/include/sanitizer/msan_interface.h Mon Jan 15 01:19:11 2018 (r327989) @@ -31,10 +31,10 @@ extern "C" { int __msan_origin_is_descendant_or_same(uint32_t this_id, uint32_t prev_id); /* Returns non-zero if tracking origins. */ - int __msan_get_track_origins(); + int __msan_get_track_origins(void); /* Returns the origin id of the latest UMR in the calling thread. */ - uint32_t __msan_get_umr_origin(); + uint32_t __msan_get_umr_origin(void); /* Make memory region fully initialized (without changing its contents). */ void __msan_unpoison(const volatile void *a, size_t size); @@ -82,7 +82,7 @@ extern "C" { void __msan_dump_shadow(const volatile void *x, size_t size); /* Returns true if running under a dynamic tool (DynamoRio-based). */ - int __msan_has_dynamic_component(); + int __msan_has_dynamic_component(void); /* Tell MSan about newly allocated memory (ex.: custom allocator). Memory will be marked uninitialized, with origin at the call site. */ @@ -93,7 +93,7 @@ extern "C" { /* This function may be optionally provided by user and should return a string containing Msan runtime options. See msan_flags.h for details. */ - const char* __msan_default_options(); + const char* __msan_default_options(void); /* Deprecated. Call __sanitizer_set_death_callback instead. */ void __msan_set_death_callback(void (*callback)(void)); Copied: user/jeff/numa/contrib/compiler-rt/include/sanitizer/scudo_interface.h (from r327986, head/contrib/compiler-rt/include/sanitizer/scudo_interface.h) ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/jeff/numa/contrib/compiler-rt/include/sanitizer/scudo_interface.h Mon Jan 15 01:19:11 2018 (r327989, copy of r327986, head/contrib/compiler-rt/include/sanitizer/scudo_interface.h) @@ -0,0 +1,34 @@ +//===-- sanitizer/scudo_interface.h -----------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +/// Public Scudo interface header. +// +//===----------------------------------------------------------------------===// +#ifndef SANITIZER_SCUDO_INTERFACE_H_ +#define SANITIZER_SCUDO_INTERFACE_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + // This function may be optionally provided by a user and should return + // a string containing Scudo runtime options. See scudo_flags.h for details. + const char* __scudo_default_options(void); + + // This function allows to set the RSS limit at runtime. This can be either + // the hard limit (HardLimit=1) or the soft limit (HardLimit=0). The limit + // can be removed by setting LimitMb to 0. This function's parameters should + // be fully trusted to avoid security mishaps. + void __scudo_set_rss_limit(unsigned long LimitMb, int HardLimit); +#ifdef __cplusplus +} // extern "C" +#endif + +#endif // SANITIZER_SCUDO_INTERFACE_H_ Modified: user/jeff/numa/contrib/compiler-rt/include/sanitizer/tsan_interface.h ============================================================================== --- user/jeff/numa/contrib/compiler-rt/include/sanitizer/tsan_interface.h Mon Jan 15 01:09:10 2018 (r327988) +++ user/jeff/numa/contrib/compiler-rt/include/sanitizer/tsan_interface.h Mon Jan 15 01:19:11 2018 (r327989) @@ -44,6 +44,11 @@ const unsigned __tsan_mutex_linker_init = 1 << 0; const unsigned __tsan_mutex_write_reentrant = 1 << 1; // Mutex is read reentrant. const unsigned __tsan_mutex_read_reentrant = 1 << 2; +// Mutex does not have static storage duration, and must not be used after +// its destructor runs. The opposite of __tsan_mutex_linker_init. +// If this flag is passed to __tsan_mutex_destroy, then the destruction +// is ignored unless this flag was previously set on the mutex. +const unsigned __tsan_mutex_not_static = 1 << 8; // Mutex operation flags: @@ -70,6 +75,7 @@ void __tsan_mutex_create(void *addr, unsigned flags); // Annotate destruction of a mutex. // Supported flags: // - __tsan_mutex_linker_init +// - __tsan_mutex_not_static void __tsan_mutex_destroy(void *addr, unsigned flags); // Annotate start of lock operation. Modified: user/jeff/numa/contrib/compiler-rt/include/xray/xray_interface.h ============================================================================== --- user/jeff/numa/contrib/compiler-rt/include/xray/xray_interface.h Mon Jan 15 01:09:10 2018 (r327988) +++ user/jeff/numa/contrib/compiler-rt/include/xray/xray_interface.h Mon Jan 15 01:19:11 2018 (r327989) @@ -106,6 +106,14 @@ extern uintptr_t __xray_function_address(int32_t FuncI /// encounter errors (when there are no instrumented functions, etc.). extern size_t __xray_max_function_id(); +/// Initialize the required XRay data structures. This is useful in cases where +/// users want to control precisely when the XRay instrumentation data +/// structures are initialized, for example when the XRay library is built with +/// the XRAY_NO_PREINIT preprocessor definition. +/// +/// Calling __xray_init() more than once is safe across multiple threads. +extern void __xray_init(); + } // end extern "C" #endif // XRAY_XRAY_INTERFACE_H Modified: user/jeff/numa/contrib/compiler-rt/include/xray/xray_log_interface.h ============================================================================== --- user/jeff/numa/contrib/compiler-rt/include/xray/xray_log_interface.h Mon Jan 15 01:09:10 2018 (r327988) +++ user/jeff/numa/contrib/compiler-rt/include/xray/xray_log_interface.h Mon Jan 15 01:19:11 2018 (r327989) @@ -128,6 +128,16 @@ enum XRayLogFlushStatus { XRAY_LOG_FLUSHED = 2, }; +/// This enum indicates the installation state of a logging implementation, when +/// associating a mode to a particular logging implementation through +/// `__xray_log_register_impl(...)` or through `__xray_log_select_mode(...`. +enum XRayLogRegisterStatus { + XRAY_REGISTRATION_OK = 0, + XRAY_DUPLICATE_MODE = 1, + XRAY_MODE_NOT_FOUND = 2, + XRAY_INCOMPLETE_IMPL = 3, +}; + /// A valid XRay logging implementation MUST provide all of the function /// pointers in XRayLogImpl when being installed through `__xray_set_log_impl`. /// To be precise, ALL the functions pointers MUST NOT be nullptr. @@ -159,6 +169,9 @@ struct XRayLogImpl { /// always have a handler for function entry and exit events. In case the /// implementation wants to support arg1 (or other future extensions to XRay /// logging) those MUST be installed by the installed 'log_init' handler. + /// + /// Because we didn't want to change the ABI of this struct, the arg1 handler + /// may be silently overwritten during initialization as well. void (*handle_arg0)(int32_t, XRayEntryType); /// The log implementation provided routine for when __xray_log_flushLog() is @@ -186,6 +199,34 @@ struct XRayLogImpl { /// called while in any other states. void __xray_set_log_impl(XRayLogImpl Impl); +/// This function registers a logging implementation against a "mode" +/// identifier. This allows multiple modes to be registered, and chosen at +/// runtime using the same mode identifier through +/// `__xray_log_select_mode(...)`. +/// +/// We treat the Mode identifier as a null-terminated byte string, as the +/// identifier used when retrieving the log impl. +/// +/// Returns: +/// - XRAY_REGISTRATION_OK on success. +/// - XRAY_DUPLICATE_MODE when an implementation is already associated with +/// the provided Mode; does not update the already-registered +/// implementation. +XRayLogRegisterStatus __xray_log_register_mode(const char *Mode, + XRayLogImpl Impl); + +/// This function selects the implementation associated with Mode that has been +/// registered through __xray_log_register_mode(...) and installs that +/// implementation (as if through calling __xray_set_log_impl(...)). The same +/// caveats apply to __xray_log_select_mode(...) as with +/// __xray_log_set_log_impl(...). +/// +/// Returns: +/// - XRAY_REGISTRATION_OK on success. +/// - XRAY_MODE_NOT_FOUND if there is no implementation associated with Mode; +/// does not update the currently installed implementation. +XRayLogRegisterStatus __xray_log_select_mode(const char *Mode); + /// This function removes the currently installed implementation. It will also /// uninstall any handlers that have been previously installed. It does NOT /// unpatch the instrumentation sleds. @@ -220,10 +261,17 @@ XRayLogFlushStatus __xray_log_flushLog(); namespace __xray { -// Options used by the LLVM XRay FDR implementation. +/// Options used by the LLVM XRay FDR logging implementation. struct FDRLoggingOptions { bool ReportErrors = false; int Fd = -1; +}; + +/// Options used by the LLVM XRay Basic (Naive) logging implementation. +struct BasicLoggingOptions { + int DurationFilterMicros = 0; + size_t MaxStackDepth = 0; + size_t ThreadBufferSize = 0; }; } // namespace __xray Modified: user/jeff/numa/contrib/compiler-rt/include/xray/xray_records.h ============================================================================== --- user/jeff/numa/contrib/compiler-rt/include/xray/xray_records.h Mon Jan 15 01:09:10 2018 (r327988) +++ user/jeff/numa/contrib/compiler-rt/include/xray/xray_records.h Mon Jan 15 01:19:11 2018 (r327989) @@ -17,6 +17,8 @@ #ifndef XRAY_XRAY_RECORDS_H #define XRAY_XRAY_RECORDS_H +#include + namespace __xray { enum FileTypes { @@ -65,18 +67,23 @@ static_assert(sizeof(XRayFileHeader) == 32, "XRayFileH enum RecordTypes { NORMAL = 0, + ARG_PAYLOAD = 1, }; struct alignas(32) XRayRecord { // This is the type of the record being written. We use 16 bits to allow us to // treat this as a discriminant, and so that the first 4 bytes get packed // properly. See RecordTypes for more supported types. - uint16_t RecordType = 0; + uint16_t RecordType = RecordTypes::NORMAL; // The CPU where the thread is running. We assume number of CPUs <= 256. uint8_t CPU = 0; - // The type of the event. Usually either ENTER = 0 or EXIT = 1. + // The type of the event. One of the following: + // ENTER = 0 + // EXIT = 1 + // TAIL_EXIT = 2 + // ENTER_ARG = 3 uint8_t Type = 0; // The function ID for the record. @@ -93,6 +100,32 @@ struct alignas(32) XRayRecord { } __attribute__((packed)); static_assert(sizeof(XRayRecord) == 32, "XRayRecord != 32 bytes"); + +struct alignas(32) XRayArgPayload { + // We use the same 16 bits as a discriminant for the records in the log here + // too, and so that the first 4 bytes are packed properly. + uint16_t RecordType = RecordTypes::ARG_PAYLOAD; + + // Add a few bytes to pad. + uint8_t Padding[2] = {}; + + // The function ID for the record. + int32_t FuncId = 0; + + // The thread ID for the currently running thread. + uint32_t TId = 0; + + // Add more padding. + uint8_t Padding2[4] = {}; + + // The argument payload. + uint64_t Arg = 0; + + // The rest of this record ought to be left as padding. + uint8_t TailPadding[8] = {}; +} __attribute__((packed)); + +static_assert(sizeof(XRayArgPayload) == 32, "XRayArgPayload != 32 bytes"); } // namespace __xray Modified: user/jeff/numa/contrib/compiler-rt/lib/BlocksRuntime/Block.h ============================================================================== --- user/jeff/numa/contrib/compiler-rt/lib/BlocksRuntime/Block.h Mon Jan 15 01:09:10 2018 (r327988) +++ user/jeff/numa/contrib/compiler-rt/lib/BlocksRuntime/Block.h Mon Jan 15 01:19:11 2018 (r327989) @@ -27,7 +27,7 @@ #if !defined(BLOCK_EXPORT) # if defined(__cplusplus) -# define BLOCK_EXPORT extern "C" +# define BLOCK_EXPORT extern "C" # else # define BLOCK_EXPORT extern # endif Modified: user/jeff/numa/contrib/compiler-rt/lib/BlocksRuntime/Block_private.h ============================================================================== --- user/jeff/numa/contrib/compiler-rt/lib/BlocksRuntime/Block_private.h Mon Jan 15 01:09:10 2018 (r327988) +++ user/jeff/numa/contrib/compiler-rt/lib/BlocksRuntime/Block_private.h Mon Jan 15 01:19:11 2018 (r327989) @@ -27,7 +27,7 @@ #if !defined(BLOCK_EXPORT) # if defined(__cplusplus) -# define BLOCK_EXPORT extern "C" +# define BLOCK_EXPORT extern "C" # else # define BLOCK_EXPORT extern # endif Modified: user/jeff/numa/contrib/compiler-rt/lib/asan/asan_activation.cc ============================================================================== --- user/jeff/numa/contrib/compiler-rt/lib/asan/asan_activation.cc Mon Jan 15 01:09:10 2018 (r327988) +++ user/jeff/numa/contrib/compiler-rt/lib/asan/asan_activation.cc Mon Jan 15 01:19:11 2018 (r327989) @@ -16,8 +16,10 @@ #include "asan_allocator.h" #include "asan_flags.h" #include "asan_internal.h" +#include "asan_mapping.h" #include "asan_poisoning.h" #include "asan_stack.h" +#include "sanitizer_common/sanitizer_common.h" #include "sanitizer_common/sanitizer_flags.h" namespace __asan { @@ -110,8 +112,9 @@ void AsanDeactivate() { AllocatorOptions disabled = asan_deactivated_flags.allocator_options; disabled.quarantine_size_mb = 0; disabled.thread_local_quarantine_size_kb = 0; - disabled.min_redzone = 16; // Redzone must be at least 16 bytes long. - disabled.max_redzone = 16; + // Redzone must be at least Max(16, granularity) bytes long. + disabled.min_redzone = Max(16, (int)SHADOW_GRANULARITY); + disabled.max_redzone = disabled.min_redzone; disabled.alloc_dealloc_mismatch = false; disabled.may_return_null = true; ReInitializeAllocator(disabled); Modified: user/jeff/numa/contrib/compiler-rt/lib/asan/asan_allocator.cc ============================================================================== --- user/jeff/numa/contrib/compiler-rt/lib/asan/asan_allocator.cc Mon Jan 15 01:09:10 2018 (r327988) +++ user/jeff/numa/contrib/compiler-rt/lib/asan/asan_allocator.cc Mon Jan 15 01:19:11 2018 (r327989) @@ -84,7 +84,10 @@ struct ChunkHeader { // This field is used for small sizes. For large sizes it is equal to // SizeClassMap::kMaxSize and the actual size is stored in the // SecondaryAllocator's metadata. - u32 user_requested_size; + u32 user_requested_size : 29; + // align < 8 -> 0 + // else -> log2(min(align, 512)) - 2 + u32 user_requested_alignment_log : 3; u32 alloc_context_id; }; @@ -271,9 +274,9 @@ struct Allocator { atomic_store(&max_redzone, options.max_redzone, memory_order_release); } - void Initialize(const AllocatorOptions &options) { + void InitLinkerInitialized(const AllocatorOptions &options) { SetAllocatorMayReturnNull(options.may_return_null); - allocator.Init(options.release_to_os_interval_ms); + allocator.InitLinkerInitialized(options.release_to_os_interval_ms); SharedInitCode(options); } @@ -351,6 +354,20 @@ struct Allocator { return Min(Max(rz_log, RZSize2Log(min_rz)), RZSize2Log(max_rz)); } + static uptr ComputeUserRequestedAlignmentLog(uptr user_requested_alignment) { + if (user_requested_alignment < 8) + return 0; + if (user_requested_alignment > 512) + user_requested_alignment = 512; + return Log2(user_requested_alignment) - 2; + } + + static uptr ComputeUserAlignment(uptr user_requested_alignment_log) { + if (user_requested_alignment_log == 0) + return 0; + return 1LL << (user_requested_alignment_log + 2); + } + // We have an address between two chunks, and we want to report just one. AsanChunk *ChooseChunk(uptr addr, AsanChunk *left_chunk, AsanChunk *right_chunk) { @@ -385,6 +402,8 @@ struct Allocator { Flags &fl = *flags(); CHECK(stack); const uptr min_alignment = SHADOW_GRANULARITY; + const uptr user_requested_alignment_log = + ComputeUserRequestedAlignmentLog(alignment); if (alignment < min_alignment) alignment = min_alignment; if (size == 0) { @@ -472,6 +491,7 @@ struct Allocator { meta[0] = size; meta[1] = chunk_beg; } + m->user_requested_alignment_log = user_requested_alignment_log; m->alloc_context_id = StackDepotPut(*stack); @@ -573,8 +593,8 @@ struct Allocator { } } - void Deallocate(void *ptr, uptr delete_size, BufferedStackTrace *stack, - AllocType alloc_type) { + void Deallocate(void *ptr, uptr delete_size, uptr delete_alignment, + BufferedStackTrace *stack, AllocType alloc_type) { uptr p = reinterpret_cast(ptr); if (p == 0) return; @@ -601,13 +621,16 @@ struct Allocator { ReportAllocTypeMismatch((uptr)ptr, stack, (AllocType)m->alloc_type, (AllocType)alloc_type); } + } else { + if (flags()->new_delete_type_mismatch && + (alloc_type == FROM_NEW || alloc_type == FROM_NEW_BR) && + ((delete_size && delete_size != m->UsedSize()) || + ComputeUserRequestedAlignmentLog(delete_alignment) != + m->user_requested_alignment_log)) { + ReportNewDeleteTypeMismatch(p, delete_size, delete_alignment, stack); + } } - if (delete_size && flags()->new_delete_type_mismatch && - delete_size != m->UsedSize()) { - ReportNewDeleteSizeMismatch(p, delete_size, stack); - } - QuarantineChunk(m, ptr, stack); } @@ -631,7 +654,7 @@ struct Allocator { // If realloc() races with free(), we may start copying freed memory. // However, we will report racy double-free later anyway. REAL(memcpy)(new_ptr, old_ptr, memcpy_size); - Deallocate(old_ptr, 0, stack, FROM_MALLOC); + Deallocate(old_ptr, 0, 0, stack, FROM_MALLOC); } return new_ptr; } @@ -716,6 +739,22 @@ struct Allocator { return AsanChunkView(m1); } + void Purge() { + AsanThread *t = GetCurrentThread(); + if (t) { + AsanThreadLocalMallocStorage *ms = &t->malloc_storage(); + quarantine.DrainAndRecycle(GetQuarantineCache(ms), + QuarantineCallback(GetAllocatorCache(ms))); + } + { + SpinMutexLock l(&fallback_mutex); + quarantine.DrainAndRecycle(&fallback_quarantine_cache, + QuarantineCallback(&fallback_allocator_cache)); + } + + allocator.ForceReleaseToOS(); + } + void PrintStats() { allocator.PrintStats(); quarantine.PrintStats(); @@ -750,6 +789,9 @@ bool AsanChunkView::IsQuarantined() const { uptr AsanChunkView::Beg() const { return chunk_->Beg(); } uptr AsanChunkView::End() const { return Beg() + UsedSize(); } uptr AsanChunkView::UsedSize() const { return chunk_->UsedSize(); } +u32 AsanChunkView::UserRequestedAlignment() const { + return Allocator::ComputeUserAlignment(chunk_->user_requested_alignment_log); +} uptr AsanChunkView::AllocTid() const { return chunk_->alloc_tid; } uptr AsanChunkView::FreeTid() const { return chunk_->free_tid; } AllocType AsanChunkView::GetAllocType() const { @@ -775,7 +817,7 @@ StackTrace AsanChunkView::GetFreeStack() const { } void InitializeAllocator(const AllocatorOptions &options) { - instance.Initialize(options); + instance.InitLinkerInitialized(options); } void ReInitializeAllocator(const AllocatorOptions &options) { @@ -802,12 +844,12 @@ void PrintInternalAllocatorStats() { } void asan_free(void *ptr, BufferedStackTrace *stack, AllocType alloc_type) { - instance.Deallocate(ptr, 0, stack, alloc_type); + instance.Deallocate(ptr, 0, 0, stack, alloc_type); } -void asan_sized_free(void *ptr, uptr size, BufferedStackTrace *stack, - AllocType alloc_type) { - instance.Deallocate(ptr, size, stack, alloc_type); +void asan_delete(void *ptr, uptr size, uptr alignment, + BufferedStackTrace *stack, AllocType alloc_type) { + instance.Deallocate(ptr, size, alignment, stack, alloc_type); } void *asan_malloc(uptr size, BufferedStackTrace *stack) { @@ -823,7 +865,7 @@ void *asan_realloc(void *p, uptr size, BufferedStackTr return SetErrnoOnNull(instance.Allocate(size, 8, stack, FROM_MALLOC, true)); if (size == 0) { if (flags()->allocator_frees_and_returns_null_on_realloc_zero) { - instance.Deallocate(p, 0, stack, FROM_MALLOC); + instance.Deallocate(p, 0, 0, stack, FROM_MALLOC); return nullptr; } // Allocate a size of 1 if we shouldn't free() on Realloc to 0 @@ -839,6 +881,10 @@ void *asan_valloc(uptr size, BufferedStackTrace *stack void *asan_pvalloc(uptr size, BufferedStackTrace *stack) { uptr PageSize = GetPageSizeCached(); + if (UNLIKELY(CheckForPvallocOverflow(size, PageSize))) { + errno = errno_ENOMEM; + return AsanAllocator::FailureHandler::OnBadRequest(); + } // pvalloc(0) should allocate one page. size = size ? RoundUpTo(size, PageSize) : PageSize; return SetErrnoOnNull( @@ -1005,6 +1051,10 @@ uptr __sanitizer_get_allocated_size(const void *p) { ReportSanitizerGetAllocatedSizeNotOwned(ptr, &stack); } return allocated_size; +} + +void __sanitizer_purge_allocator() { + instance.Purge(); } #if !SANITIZER_SUPPORTS_WEAK_HOOKS Modified: user/jeff/numa/contrib/compiler-rt/lib/asan/asan_allocator.h ============================================================================== --- user/jeff/numa/contrib/compiler-rt/lib/asan/asan_allocator.h Mon Jan 15 01:09:10 2018 (r327988) +++ user/jeff/numa/contrib/compiler-rt/lib/asan/asan_allocator.h Mon Jan 15 01:19:11 2018 (r327989) @@ -58,6 +58,7 @@ class AsanChunkView { uptr Beg() const; // First byte of user memory. uptr End() const; // Last byte of user memory. uptr UsedSize() const; // Size requested by the user. + u32 UserRequestedAlignment() const; // Originally requested alignment. uptr AllocTid() const; uptr FreeTid() const; bool Eq(const AsanChunkView &c) const { return chunk_ == c.chunk_; } @@ -119,7 +120,11 @@ struct AsanMapUnmapCallback { }; #if SANITIZER_CAN_USE_ALLOCATOR64 -# if defined(__powerpc64__) +# if SANITIZER_FUCHSIA +const uptr kAllocatorSpace = ~(uptr)0; +const uptr kAllocatorSize = 0x40000000000ULL; // 4T. +typedef DefaultSizeClassMap SizeClassMap; +# elif defined(__powerpc64__) const uptr kAllocatorSpace = 0xa0000000000ULL; const uptr kAllocatorSize = 0x20000000000ULL; // 2T. typedef DefaultSizeClassMap SizeClassMap; @@ -193,8 +198,8 @@ struct AsanThreadLocalMallocStorage { void *asan_memalign(uptr alignment, uptr size, BufferedStackTrace *stack, AllocType alloc_type); void asan_free(void *ptr, BufferedStackTrace *stack, AllocType alloc_type); -void asan_sized_free(void *ptr, uptr size, BufferedStackTrace *stack, - AllocType alloc_type); +void asan_delete(void *ptr, uptr size, uptr alignment, + BufferedStackTrace *stack, AllocType alloc_type); void *asan_malloc(uptr size, BufferedStackTrace *stack); void *asan_calloc(uptr nmemb, uptr size, BufferedStackTrace *stack); Modified: user/jeff/numa/contrib/compiler-rt/lib/asan/asan_descriptions.cc ============================================================================== --- user/jeff/numa/contrib/compiler-rt/lib/asan/asan_descriptions.cc Mon Jan 15 01:09:10 2018 (r327988) +++ user/jeff/numa/contrib/compiler-rt/lib/asan/asan_descriptions.cc Mon Jan 15 01:19:11 2018 (r327989) @@ -122,6 +122,7 @@ static void GetAccessToHeapChunkInformation(ChunkAcces } descr->chunk_begin = chunk.Beg(); descr->chunk_size = chunk.UsedSize(); + descr->user_requested_alignment = chunk.UserRequestedAlignment(); descr->alloc_type = chunk.GetAllocType(); } @@ -150,7 +151,7 @@ static void PrintHeapChunkAccess(uptr addr, const Chun str.append(" %zu-byte region [%p,%p)\n", descr.chunk_size, (void *)descr.chunk_begin, (void *)(descr.chunk_begin + descr.chunk_size)); - str.append("%s", d.EndLocation()); + str.append("%s", d.Default()); Printf("%s", str.data()); } @@ -260,7 +261,7 @@ static void PrintAccessAndVarIntersection(const StackV // FIXME: we may want to also print the size of the access here, // but in case of accesses generated by memset it may be confusing. str.append("%s <== Memory access at offset %zd %s this variable%s\n", - d.Location(), addr, pos_descr, d.EndLocation()); + d.Location(), addr, pos_descr, d.Default()); } else { str.append("\n"); } @@ -295,7 +296,7 @@ static void DescribeAddressRelativeToGlobal(uptr addr, MaybeDemangleGlobalName(g.name)); PrintGlobalLocation(&str, g); str.append("' (0x%zx) of size %zu\n", g.beg, g.size); - str.append("%s", d.EndLocation()); + str.append("%s", d.Default()); PrintGlobalNameIfASCII(&str, g); Printf("%s", str.data()); } @@ -335,6 +336,26 @@ void GlobalAddressDescription::Print(const char *bug_t } } +bool GlobalAddressDescription::PointsInsideTheSameVariable( + const GlobalAddressDescription &other) const { + if (size == 0 || other.size == 0) return false; + + for (uptr i = 0; i < size; i++) { + const __asan_global &a = globals[i]; + for (uptr j = 0; j < other.size; j++) { + const __asan_global &b = other.globals[j]; + if (a.beg == b.beg && + a.beg <= addr && + b.beg <= other.addr && + (addr + access_size) < (a.beg + a.size) && + (other.addr + other.access_size) < (b.beg + b.size)) + return true; + } + } + + return false; +} + void StackAddressDescription::Print() const { Decorator d; char tname[128]; @@ -343,10 +364,10 @@ void StackAddressDescription::Print() const { ThreadNameWithParenthesis(tid, tname, sizeof(tname))); *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@freebsd.org Mon Jan 15 14:56:48 2018 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D1C9BEB2450 for ; Mon, 15 Jan 2018 14:56:48 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id AD8DF79C8E; Mon, 15 Jan 2018 14:56:48 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0C66212973; Mon, 15 Jan 2018 14:56:48 +0000 (UTC) (envelope-from markj@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w0FEulU1000627; Mon, 15 Jan 2018 14:56:47 GMT (envelope-from markj@FreeBSD.org) Received: (from markj@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w0FEulTM000626; Mon, 15 Jan 2018 14:56:47 GMT (envelope-from markj@FreeBSD.org) Message-Id: <201801151456.w0FEulTM000626@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: markj set sender to markj@FreeBSD.org using -f From: Mark Johnston Date: Mon, 15 Jan 2018 14:56:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r328003 - user/markj/netdump/sys/dev/virtio/network X-SVN-Group: user X-SVN-Commit-Author: markj X-SVN-Commit-Paths: user/markj/netdump/sys/dev/virtio/network X-SVN-Commit-Revision: 328003 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Jan 2018 14:56:48 -0000 Author: markj Date: Mon Jan 15 14:56:47 2018 New Revision: 328003 URL: https://svnweb.freebsd.org/changeset/base/328003 Log: Remove changes left over from debugging. Reported by: bryanv Modified: user/markj/netdump/sys/dev/virtio/network/if_vtnet.c Modified: user/markj/netdump/sys/dev/virtio/network/if_vtnet.c ============================================================================== --- user/markj/netdump/sys/dev/virtio/network/if_vtnet.c Mon Jan 15 12:17:26 2018 (r328002) +++ user/markj/netdump/sys/dev/virtio/network/if_vtnet.c Mon Jan 15 14:56:47 2018 (r328003) @@ -1784,7 +1784,6 @@ vtnet_rxq_eof(struct vtnet_rxq *rxq) m = virtqueue_dequeue(vq, &len); if (m == NULL) break; - deq++; if (len < sc->vtnet_hdr_size + ETHER_HDR_LEN) { @@ -1812,7 +1811,6 @@ vtnet_rxq_eof(struct vtnet_rxq *rxq) vtnet_rxq_discard_buf(rxq, m); if (nbufs > 1) vtnet_rxq_discard_merged_bufs(rxq, nbufs); - printf("vtnet_rxq_replace_buf failed!\n"); continue; } From owner-svn-src-user@freebsd.org Mon Jan 15 19:02:16 2018 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BB453E6F9F4 for ; Mon, 15 Jan 2018 19:02:16 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 6BC106956F; Mon, 15 Jan 2018 19:02:16 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 9D2F2153E2; Mon, 15 Jan 2018 19:02:15 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w0FJ2FYJ011168; Mon, 15 Jan 2018 19:02:15 GMT (envelope-from jeff@FreeBSD.org) Received: (from jeff@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w0FJ2FMD011160; Mon, 15 Jan 2018 19:02:15 GMT (envelope-from jeff@FreeBSD.org) Message-Id: <201801151902.w0FJ2FMD011160@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jeff set sender to jeff@FreeBSD.org using -f From: Jeff Roberson Date: Mon, 15 Jan 2018 19:02:15 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r328012 - user/jeff/numa/sys/vm X-SVN-Group: user X-SVN-Commit-Author: jeff X-SVN-Commit-Paths: user/jeff/numa/sys/vm X-SVN-Commit-Revision: 328012 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Jan 2018 19:02:16 -0000 Author: jeff Date: Mon Jan 15 19:02:15 2018 New Revision: 328012 URL: https://svnweb.freebsd.org/changeset/base/328012 Log: First cut at finer locking for reservations. Modified: user/jeff/numa/sys/vm/vm_page.c user/jeff/numa/sys/vm/vm_page.h user/jeff/numa/sys/vm/vm_phys.c user/jeff/numa/sys/vm/vm_phys.h user/jeff/numa/sys/vm/vm_reserv.c user/jeff/numa/sys/vm/vm_reserv.h Modified: user/jeff/numa/sys/vm/vm_page.c ============================================================================== --- user/jeff/numa/sys/vm/vm_page.c Mon Jan 15 18:37:03 2018 (r328011) +++ user/jeff/numa/sys/vm/vm_page.c Mon Jan 15 19:02:15 2018 (r328012) @@ -174,8 +174,8 @@ static int vm_page_insert_after(vm_page_t m, vm_object vm_pindex_t pindex, vm_page_t mpred); static void vm_page_insert_radixdone(vm_page_t m, vm_object_t object, vm_page_t mpred); -static int vm_page_reclaim_run(int req_class, u_long npages, vm_page_t m_run, - vm_paddr_t high); +static int vm_page_reclaim_run(int req_class, int domain, u_long npages, + vm_page_t m_run, vm_paddr_t high); static int vm_page_alloc_fail(vm_object_t object, int req); SYSINIT(vm_page, SI_SUB_VM, SI_ORDER_SECOND, vm_page_init, NULL); @@ -316,7 +316,7 @@ vm_page_blacklist_check(char *list, char *end) vm_paddr_t pa; vm_page_t m; char *next; - int ret; + int ret, domain; next = list; while (next != NULL) { @@ -325,9 +325,10 @@ vm_page_blacklist_check(char *list, char *end) m = vm_phys_paddr_to_vm_page(pa); if (m == NULL) continue; - mtx_lock(&vm_page_queue_free_mtx); + domain = vm_phys_domidx(m); + vm_pagequeue_free_lock(domain); ret = vm_phys_unfree_page(m); - mtx_unlock(&vm_page_queue_free_mtx); + vm_pagequeue_free_unlock(domain); if (ret == TRUE) { TAILQ_INSERT_TAIL(&blacklist_head, m, listq); if (bootverbose) @@ -713,10 +714,10 @@ vm_page_startup(vm_offset_t vaddr) m = seg->first_page; pagecount = (u_long)atop(seg->end - seg->start); - mtx_lock(&vm_page_queue_free_mtx); + vm_pagequeue_free_lock(seg->domain); vm_phys_free_contig(m, pagecount); - vm_phys_freecnt_adj(m, (int)pagecount); - mtx_unlock(&vm_page_queue_free_mtx); + vm_phys_freecnt_adj(seg->domain, (int)pagecount); + vm_pagequeue_free_unlock(seg->domain); vm_cnt.v_page_count += (u_int)pagecount; vmd = &vm_dom[seg->domain]; @@ -1644,14 +1645,48 @@ vm_page_alloc_after(vm_object_t object, vm_pindex_t pi return (m); } +/* + * Returns true if the number of free pages exceeds the minimum + * for the request class and false otherwise. + */ +int +vm_page_available(int domain, int req, int npages) +{ + + vm_pagequeue_free_assert_locked(domain); + req = req & VM_ALLOC_CLASS_MASK; + + /* + * The page daemon is allowed to dig deeper into the free page list. + */ + if (curproc == pageproc && req != VM_ALLOC_INTERRUPT) + req = VM_ALLOC_SYSTEM; + + /* XXX Global counts. */ + if (vm_cnt.v_free_count >= npages + vm_cnt.v_free_reserved || + (req == VM_ALLOC_SYSTEM && + vm_cnt.v_free_count >= npages + vm_cnt.v_interrupt_free_min) || + (req == VM_ALLOC_INTERRUPT && + vm_cnt.v_free_count >= npages)) + return (1); + + return (0); +} + vm_page_t vm_page_alloc_domain_after(vm_object_t object, vm_pindex_t pindex, int domain, int req, vm_page_t mpred) { vm_page_t m; - int flags, req_class; + int flags; u_int free_count; +#if VM_NRESERVLEVEL > 0 + int reserv; + reserv = object != NULL && + (object->flags & (OBJ_COLORED | OBJ_FICTITIOUS)) == OBJ_COLORED; +#endif + KASSERT((object != NULL) == ((req & VM_ALLOC_NOOBJ) == 0) && (object != NULL || (req & VM_ALLOC_SBUSY) == 0) && ((req & (VM_ALLOC_NOBUSY | VM_ALLOC_SBUSY)) != @@ -1665,34 +1700,19 @@ vm_page_alloc_domain_after(vm_object_t object, vm_pind if (object != NULL) VM_OBJECT_ASSERT_WLOCKED(object); - req_class = req & VM_ALLOC_CLASS_MASK; - - /* - * The page daemon is allowed to dig deeper into the free page list. - */ - if (curproc == pageproc && req_class != VM_ALLOC_INTERRUPT) - req_class = VM_ALLOC_SYSTEM; - - /* - * Allocate a page if the number of free pages exceeds the minimum - * for the request class. - */ again: m = NULL; + if (reserv && + (m = vm_reserv_extend(req, object, pindex, domain, mpred)) != NULL) + goto found; mtx_lock(&vm_page_queue_free_mtx); - if (vm_cnt.v_free_count > vm_cnt.v_free_reserved || - (req_class == VM_ALLOC_SYSTEM && - vm_cnt.v_free_count > vm_cnt.v_interrupt_free_min) || - (req_class == VM_ALLOC_INTERRUPT && - vm_cnt.v_free_count > 0)) { + if (vm_page_available(domain, req, 1)) { /* * Can we allocate the page from a reservation? */ #if VM_NRESERVLEVEL > 0 - if (object == NULL || (object->flags & (OBJ_COLORED | - OBJ_FICTITIOUS)) != OBJ_COLORED || (m = - vm_reserv_alloc_page(object, pindex, domain, - mpred)) == NULL) + if (!reserv || (m = vm_reserv_alloc_page(object, pindex, + domain, mpred)) == NULL) #endif { /* @@ -1723,8 +1743,16 @@ again: * At this point we had better have found a good page. */ KASSERT(m != NULL, ("missing page")); - free_count = vm_phys_freecnt_adj(m, -1); + free_count = vm_phys_freecnt_adj(domain, -1); mtx_unlock(&vm_page_queue_free_mtx); + + /* + * Don't wakeup too often - wakeup the pageout daemon when + * we would be nearly out of memory. + */ + if (vm_paging_needed(free_count)) + pagedaemon_wakeup(); +found: vm_page_alloc_check(m); /* @@ -1782,13 +1810,6 @@ again: } else m->pindex = pindex; - /* - * Don't wakeup too often - wakeup the pageout daemon when - * we would be nearly out of memory. - */ - if (vm_paging_needed(free_count)) - pagedaemon_wakeup(); - return (m); } @@ -1858,8 +1879,12 @@ vm_page_alloc_contig_domain(vm_object_t object, vm_pin { vm_page_t m, m_ret, mpred; u_int busy_lock, flags, oflags; - int req_class; +#if VM_NRESERVLEVEL > 0 + int reserv; + reserv = object != NULL && + (object->flags & (OBJ_COLORED | OBJ_FICTITIOUS)) == OBJ_COLORED; +#endif mpred = NULL; /* XXX: pacify gcc */ KASSERT((object != NULL) == ((req & VM_ALLOC_NOOBJ) == 0) && (object != NULL || (req & VM_ALLOC_SBUSY) == 0) && @@ -1876,14 +1901,7 @@ vm_page_alloc_contig_domain(vm_object_t object, vm_pin object)); } KASSERT(npages > 0, ("vm_page_alloc_contig: npages is zero")); - req_class = req & VM_ALLOC_CLASS_MASK; - /* - * The page daemon is allowed to dig deeper into the free page list. - */ - if (curproc == pageproc && req_class != VM_ALLOC_INTERRUPT) - req_class = VM_ALLOC_SYSTEM; - if (object != NULL) { mpred = vm_radix_lookup_le(&object->rtree, pindex); KASSERT(mpred == NULL || mpred->pindex != pindex, @@ -1895,19 +1913,21 @@ vm_page_alloc_contig_domain(vm_object_t object, vm_pin * below the lower bound for the allocation class? */ again: +#if VM_NRESERVLEVEL > 0 + if (reserv && + (m_ret = vm_reserv_extend_contig(req, object, pindex, domain, + npages, low, high, alignment, boundary, mpred)) != NULL) + goto found; +#endif m_ret = NULL; mtx_lock(&vm_page_queue_free_mtx); - if (vm_cnt.v_free_count >= npages + vm_cnt.v_free_reserved || - (req_class == VM_ALLOC_SYSTEM && - vm_cnt.v_free_count >= npages + vm_cnt.v_interrupt_free_min) || - (req_class == VM_ALLOC_INTERRUPT && - vm_cnt.v_free_count >= npages)) { + if (vm_page_available(domain, req, npages)) { /* * Can we allocate the pages from a reservation? */ #if VM_NRESERVLEVEL > 0 retry: - if (object == NULL || (object->flags & OBJ_COLORED) == 0 || + if (!reserv || (m_ret = vm_reserv_alloc_contig(object, pindex, domain, npages, low, high, alignment, boundary, mpred)) == NULL) #endif @@ -1927,8 +1947,9 @@ retry: goto again; return (NULL); } - vm_phys_freecnt_adj(m_ret, -npages); + vm_phys_freecnt_adj(domain, -npages); mtx_unlock(&vm_page_queue_free_mtx); +found: for (m = m_ret; m < &m_ret[npages]; m++) vm_page_alloc_check(m); @@ -2059,26 +2080,13 @@ vm_page_alloc_freelist_domain(int domain, int freelist { vm_page_t m; u_int flags, free_count; - int req_class; - req_class = req & VM_ALLOC_CLASS_MASK; - /* - * The page daemon is allowed to dig deeper into the free page list. - */ - if (curproc == pageproc && req_class != VM_ALLOC_INTERRUPT) - req_class = VM_ALLOC_SYSTEM; - - /* * Do not allocate reserved pages unless the req has asked for it. */ again: mtx_lock(&vm_page_queue_free_mtx); - if (vm_cnt.v_free_count > vm_cnt.v_free_reserved || - (req_class == VM_ALLOC_SYSTEM && - vm_cnt.v_free_count > vm_cnt.v_interrupt_free_min) || - (req_class == VM_ALLOC_INTERRUPT && - vm_cnt.v_free_count > 0)) + if (vm_page_available(domain, req, 1)) m = vm_phys_alloc_freelist_pages(domain, freelist, VM_FREEPOOL_DIRECT, 0); if (m == NULL) { @@ -2086,7 +2094,7 @@ again: goto again; return (NULL); } - free_count = vm_phys_freecnt_adj(m, -1); + free_count = vm_phys_freecnt_adj(domain, -1); mtx_unlock(&vm_page_queue_free_mtx); vm_page_alloc_check(m); @@ -2331,7 +2339,7 @@ unlock: * "req_class" must be an allocation class. */ static int -vm_page_reclaim_run(int req_class, u_long npages, vm_page_t m_run, +vm_page_reclaim_run(int req_class, int domain, u_long npages, vm_page_t m_run, vm_paddr_t high) { struct mtx *m_mtx; @@ -2483,7 +2491,8 @@ retry: unlock: VM_OBJECT_WUNLOCK(object); } else { - mtx_lock(&vm_page_queue_free_mtx); + MPASS(vm_phys_domidx(m) == domain); + vm_pagequeue_free_lock(domain); order = m->order; if (order < VM_NFREEORDER) { /* @@ -2500,7 +2509,7 @@ unlock: else if (vm_reserv_is_page_free(m)) order = 0; #endif - mtx_unlock(&vm_page_queue_free_mtx); + vm_pagequeue_free_lock(domain); if (order == VM_NFREEORDER) error = EINVAL; } @@ -2508,13 +2517,14 @@ unlock: if (m_mtx != NULL) mtx_unlock(m_mtx); if ((m = SLIST_FIRST(&free)) != NULL) { - mtx_lock(&vm_page_queue_free_mtx); + MPASS(vm_phys_domidx(m) == domain); + vm_pagequeue_free_lock(domain); do { SLIST_REMOVE_HEAD(&free, plinks.s.ss); vm_page_free_phys(m); } while ((m = SLIST_FIRST(&free)) != NULL); vm_page_free_wakeup(); - mtx_unlock(&vm_page_queue_free_mtx); + vm_pagequeue_free_unlock(domain); } return (error); } @@ -2612,8 +2622,8 @@ vm_page_reclaim_contig_domain(int domain, int req, u_l for (i = 0; count > 0 && i < NRUNS; i++) { count--; m_run = m_runs[RUN_INDEX(count)]; - error = vm_page_reclaim_run(req_class, npages, m_run, - high); + error = vm_page_reclaim_run(req_class, domain, npages, + m_run, high); if (error == 0) { reclaimed += npages; if (reclaimed >= MIN_RECLAIM) @@ -3008,9 +3018,9 @@ static void vm_page_free_phys(vm_page_t m) { - mtx_assert(&vm_page_queue_free_mtx, MA_OWNED); + vm_pagequeue_free_assert_locked(vm_phys_domidx(m)); - vm_phys_freecnt_adj(m, 1); + vm_phys_freecnt_adj(vm_phys_domidx(m), 1); #if VM_NRESERVLEVEL > 0 if (!vm_reserv_free_page(m)) #endif Modified: user/jeff/numa/sys/vm/vm_page.h ============================================================================== --- user/jeff/numa/sys/vm/vm_page.h Mon Jan 15 18:37:03 2018 (r328011) +++ user/jeff/numa/sys/vm/vm_page.h Mon Jan 15 19:02:15 2018 (r328012) @@ -248,6 +248,15 @@ extern struct vm_domain vm_dom[MAXMEMDOM]; #define vm_pagequeue_lockptr(pq) (&(pq)->pq_mutex) #define vm_pagequeue_unlock(pq) mtx_unlock(&(pq)->pq_mutex) +#define vm_pagequeue_free_assert_locked(n) \ + mtx_assert(vm_pagequeue_free_lockptr((n)), MA_OWNED) +#define vm_pagequeue_free_lock(n) \ + mtx_lock(vm_pagequeue_free_lockptr((n))) +#define vm_pagequeue_free_lockptr(n) \ + (&vm_page_queue_free_mtx) +#define vm_pagequeue_free_unlock(n) \ + mtx_unlock(vm_pagequeue_free_lockptr((n))) + #ifdef _KERNEL extern vm_page_t bogus_page; @@ -476,6 +485,7 @@ void vm_page_free_zero(vm_page_t m); void vm_page_activate (vm_page_t); void vm_page_advise(vm_page_t m, int advice); +int vm_page_available(int domain, int req, int npages); vm_page_t vm_page_alloc(vm_object_t, vm_pindex_t, int); vm_page_t vm_page_alloc_domain(vm_object_t, vm_pindex_t, int, int); vm_page_t vm_page_alloc_after(vm_object_t, vm_pindex_t, int, vm_page_t); Modified: user/jeff/numa/sys/vm/vm_phys.c ============================================================================== --- user/jeff/numa/sys/vm/vm_phys.c Mon Jan 15 18:37:03 2018 (r328011) +++ user/jeff/numa/sys/vm/vm_phys.c Mon Jan 15 19:02:15 2018 (r328012) @@ -653,7 +653,7 @@ vm_phys_alloc_freelist_pages(int domain, int freelist, if (flind < 0) return (NULL); - mtx_assert(&vm_page_queue_free_mtx, MA_OWNED); + vm_pagequeue_free_assert_locked(domain); fl = &vm_phys_free_queues[domain][flind][pool][0]; for (oind = order; oind < VM_NFREEORDER; oind++) { m = TAILQ_FIRST(&fl[oind].pl); @@ -906,8 +906,8 @@ vm_phys_free_pages(vm_page_t m, int order) m, m->pool)); KASSERT(order < VM_NFREEORDER, ("vm_phys_free_pages: order %d is out of range", order)); - mtx_assert(&vm_page_queue_free_mtx, MA_OWNED); seg = &vm_phys_segs[m->segind]; + vm_pagequeue_free_assert_locked(seg->domain); if (order < VM_NFREEORDER - 1) { pa = VM_PAGE_TO_PHYS(m); do { @@ -945,7 +945,7 @@ vm_phys_free_contig(vm_page_t m, u_long npages) * Avoid unnecessary coalescing by freeing the pages in the largest * possible power-of-two-sized subsets. */ - mtx_assert(&vm_page_queue_free_mtx, MA_OWNED); + vm_pagequeue_free_assert_locked(vm_phys_domidx(m)); for (;; npages -= n) { /* * Unsigned "min" is used here so that "order" is assigned @@ -1051,14 +1051,13 @@ vm_phys_unfree_page(vm_page_t m) vm_page_t m_set, m_tmp; int order; - mtx_assert(&vm_page_queue_free_mtx, MA_OWNED); - /* * First, find the contiguous, power of two-sized set of free * physical pages containing the given physical page "m" and * assign it to "m_set". */ seg = &vm_phys_segs[m->segind]; + vm_pagequeue_free_assert_locked(seg->domain); for (m_set = m, order = 0; m_set->order == VM_NFREEORDER && order < VM_NFREEORDER - 1; ) { order++; @@ -1122,7 +1121,7 @@ vm_phys_alloc_contig(int domain, u_long npages, vm_pad KASSERT(npages > 0, ("npages is 0")); KASSERT(powerof2(alignment), ("alignment is not a power of 2")); KASSERT(powerof2(boundary), ("boundary is not a power of 2")); - mtx_assert(&vm_page_queue_free_mtx, MA_OWNED); + vm_pagequeue_free_assert_locked(domain); if (low >= high) return (NULL); m_run = NULL; @@ -1167,7 +1166,7 @@ vm_phys_alloc_seg_contig(struct vm_phys_seg *seg, u_lo KASSERT(npages > 0, ("npages is 0")); KASSERT(powerof2(alignment), ("alignment is not a power of 2")); KASSERT(powerof2(boundary), ("boundary is not a power of 2")); - mtx_assert(&vm_page_queue_free_mtx, MA_OWNED); + vm_pagequeue_free_assert_locked(seg->domain); /* Compute the queue that is the best fit for npages. */ for (order = 0; (1 << order) < npages; order++); /* Search for a run satisfying the specified conditions. */ Modified: user/jeff/numa/sys/vm/vm_phys.h ============================================================================== --- user/jeff/numa/sys/vm/vm_phys.h Mon Jan 15 18:37:03 2018 (r328011) +++ user/jeff/numa/sys/vm/vm_phys.h Mon Jan 15 19:02:15 2018 (r328012) @@ -130,11 +130,11 @@ vm_phys_domain(vm_page_t m) } static inline u_int -vm_phys_freecnt_adj(vm_page_t m, int adj) +vm_phys_freecnt_adj(int domain, int adj) { - mtx_assert(&vm_page_queue_free_mtx, MA_OWNED); - vm_phys_domain(m)->vmd_free_count += adj; + vm_pagequeue_free_assert_locked(domain); + vm_dom[domain].vmd_free_count += adj; return (vm_cnt.v_free_count += adj); } Modified: user/jeff/numa/sys/vm/vm_reserv.c ============================================================================== --- user/jeff/numa/sys/vm/vm_reserv.c Mon Jan 15 18:37:03 2018 (r328011) +++ user/jeff/numa/sys/vm/vm_reserv.c Mon Jan 15 19:02:15 2018 (r328012) @@ -59,6 +59,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -163,6 +164,9 @@ popmap_is_set(popmap_t popmap[], int i) * object's list of reservations. * * A partially populated reservation can be broken and reclaimed at any time. + * + * The reservation structure is synchronized by the per-domain pagequeue_free + * lock. The objq is synchronized by the vm_reserv_object lock. */ struct vm_reserv { TAILQ_ENTRY(vm_reserv) partpopq; @@ -170,7 +174,7 @@ struct vm_reserv { vm_object_t object; /* containing object */ vm_pindex_t pindex; /* offset within object */ vm_page_t pages; /* first page of a superpage */ - int domain; /* NUMA domain */ + int domain; /* NUMA domain, constant. */ int popcnt; /* # of pages in use */ char inpartpopq; popmap_t popmap[NPOPMAP]; /* bit vector of used pages */ @@ -234,6 +238,8 @@ static long vm_reserv_reclaimed; SYSCTL_LONG(_vm_reserv, OID_AUTO, reclaimed, CTLFLAG_RD, &vm_reserv_reclaimed, 0, "Cumulative number of reclaimed reservations"); +static struct mtx vm_reserv_object_mtx; + static void vm_reserv_break(vm_reserv_t rv, vm_page_t m); static void vm_reserv_depopulate(vm_reserv_t rv, int index); static vm_reserv_t vm_reserv_from_page(vm_page_t m); @@ -288,12 +294,12 @@ sysctl_vm_reserv_partpopq(SYSCTL_HANDLER_ARGS) for (level = -1; level <= VM_NRESERVLEVEL - 2; level++) { counter = 0; unused_pages = 0; - mtx_lock(&vm_page_queue_free_mtx); + vm_pagequeue_free_lock(domain); TAILQ_FOREACH(rv, &vm_rvq_partpop[domain], partpopq) { counter++; unused_pages += VM_LEVEL_0_NPAGES - rv->popcnt; } - mtx_unlock(&vm_page_queue_free_mtx); + vm_pagequeue_free_unlock(domain); sbuf_printf(&sbuf, "%6d, %7d, %6dK, %6d\n", domain, level, unused_pages * ((int)PAGE_SIZE / 1024), counter); @@ -304,7 +310,53 @@ sysctl_vm_reserv_partpopq(SYSCTL_HANDLER_ARGS) return (error); } +#define vm_reserv_object_lock(object) mtx_lock(&vm_reserv_object_mtx) +#define vm_reserv_object_unlock(object) mtx_unlock(&vm_reserv_object_mtx) + /* + * Remove a reservation from the object's objq. + */ +static void +vm_reserv_remove(vm_reserv_t rv) +{ + vm_object_t object; + + KASSERT(rv->object != NULL, + ("vm_reserv_remove: reserv %p is free", rv)); + KASSERT(!rv->inpartpopq, + ("vm_reserv_remove: reserv %p's inpartpopq is TRUE", rv)); + object = rv->object; + vm_reserv_object_lock(object); + LIST_REMOVE(rv, objq); + rv->object = NULL; + vm_reserv_object_unlock(object); +} + +/* + * Insert a new reservation into the object's objq. + */ +static void +vm_reserv_insert(vm_reserv_t rv, vm_object_t object, vm_pindex_t pindex) +{ + int i; + + KASSERT(rv->object == NULL, + ("vm_reserv_insert: reserv %p isn't free", rv)); + KASSERT(rv->popcnt == 0, + ("vm_reserv_insert: reserv %p's popcnt is corrupted", rv)); + KASSERT(!rv->inpartpopq, + ("vm_reserv_insert: reserv %p's inpartpopq is TRUE", rv)); + for (i = 0; i < NPOPMAP; i++) + KASSERT(rv->popmap[i] == 0, + ("vm_reserv_insert: reserv %p's popmap is corrupted", rv)); + rv->pindex = pindex; + vm_reserv_object_lock(object); + rv->object = object; + LIST_INSERT_HEAD(&object->rvq, rv, objq); + vm_reserv_object_unlock(object); +} + +/* * Reduces the given reservation's population count. If the population count * becomes zero, the reservation is destroyed. Additionally, moves the * reservation to the tail of the partially populated reservation queue if the @@ -316,7 +368,7 @@ static void vm_reserv_depopulate(vm_reserv_t rv, int index) { - mtx_assert(&vm_page_queue_free_mtx, MA_OWNED); + vm_pagequeue_free_assert_locked(rv->domain); KASSERT(rv->object != NULL, ("vm_reserv_depopulate: reserv %p is free", rv)); KASSERT(popmap_is_set(rv->popmap, index), @@ -339,9 +391,7 @@ vm_reserv_depopulate(vm_reserv_t rv, int index) popmap_clear(rv->popmap, index); rv->popcnt--; if (rv->popcnt == 0) { - LIST_REMOVE(rv, objq); - rv->object = NULL; - rv->domain = -1; + vm_reserv_remove(rv); vm_phys_free_pages(rv->pages, VM_LEVEL_0_ORDER); vm_reserv_freed++; } else { @@ -361,6 +411,43 @@ vm_reserv_from_page(vm_page_t m) } /* + * Returns an existing reservation or NULL and initialized successor pointer. + */ +static vm_reserv_t +vm_reserv_from_object(vm_object_t object, vm_pindex_t pindex, + vm_page_t mpred, vm_page_t *msuccp) +{ + vm_reserv_t rv; + vm_page_t msucc; + + msucc = NULL; + if (mpred != NULL) { + KASSERT(mpred->object == object, + ("vm_reserv_from_object: object doesn't contain mpred")); + KASSERT(mpred->pindex < pindex, + ("vm_reserv_from_object: mpred doesn't precede pindex")); + rv = vm_reserv_from_page(mpred); + if (rv->object == object && vm_reserv_has_pindex(rv, pindex)) + goto found; + msucc = TAILQ_NEXT(mpred, listq); + } else + msucc = TAILQ_FIRST(&object->memq); + if (msucc != NULL) { + KASSERT(msucc->pindex > pindex, + ("vm_reserv_from_object: msucc doesn't succeed pindex")); + rv = vm_reserv_from_page(msucc); + if (rv->object == object && vm_reserv_has_pindex(rv, pindex)) + goto found; + } + rv = NULL; + +found: + *msuccp = msucc; + + return (rv); +} + +/* * Returns TRUE if the given reservation contains the given page index and * FALSE otherwise. */ @@ -381,7 +468,7 @@ static void vm_reserv_populate(vm_reserv_t rv, int index) { - mtx_assert(&vm_page_queue_free_mtx, MA_OWNED); + vm_pagequeue_free_assert_locked(rv->domain); KASSERT(rv->object != NULL, ("vm_reserv_populate: reserv %p is free", rv)); KASSERT(popmap_is_clear(rv->popmap, index), @@ -423,6 +510,98 @@ vm_reserv_populate(vm_reserv_t rv, int index) * The object and free page queue must be locked. */ vm_page_t +vm_reserv_extend_contig(int req, vm_object_t object, vm_pindex_t pindex, + int domain, u_long npages, vm_paddr_t low, vm_paddr_t high, + u_long alignment, vm_paddr_t boundary, vm_page_t mpred) +{ + vm_paddr_t pa, size; + vm_page_t m, msucc; + vm_reserv_t rv; + int i, index; + + VM_OBJECT_ASSERT_WLOCKED(object); + KASSERT(npages != 0, ("vm_reserv_alloc_contig: npages is 0")); + + /* + * Is a reservation fundamentally impossible? + */ + if (pindex < VM_RESERV_INDEX(object, pindex) || + pindex + npages > object->size || object->resident_page_count == 0) + return (NULL); + + /* + * All reservations of a particular size have the same alignment. + * Assuming that the first page is allocated from a reservation, the + * least significant bits of its physical address can be determined + * from its offset from the beginning of the reservation and the size + * of the reservation. + * + * Could the specified index within a reservation of the smallest + * possible size satisfy the alignment and boundary requirements? + */ + pa = VM_RESERV_INDEX(object, pindex) << PAGE_SHIFT; + if ((pa & (alignment - 1)) != 0) + return (NULL); + size = npages << PAGE_SHIFT; + if (((pa ^ (pa + size - 1)) & ~(boundary - 1)) != 0) + return (NULL); + + /* + * Look for an existing reservation. + */ + rv = vm_reserv_from_object(object, pindex, mpred, &msucc); + if (rv == NULL) + return (NULL); + KASSERT(object != kernel_object || rv->domain == domain, + ("vm_reserv_extend_contig: Domain mismatch from reservation.")); + index = VM_RESERV_INDEX(object, pindex); + /* Does the allocation fit within the reservation? */ + if (index + npages > VM_LEVEL_0_NPAGES) + return (NULL); + domain = rv->domain; + vm_pagequeue_free_lock(domain); + if (rv->object != object || !vm_page_available(domain, req, npages)) { + m = NULL; + goto out; + } + m = &rv->pages[index]; + pa = VM_PAGE_TO_PHYS(m); + if (pa < low || pa + size > high || (pa & (alignment - 1)) != 0 || + ((pa ^ (pa + size - 1)) & ~(boundary - 1)) != 0) { + m = NULL; + goto out; + } + /* Handle vm_page_rename(m, new_object, ...). */ + for (i = 0; i < npages; i++) { + if (popmap_is_set(rv->popmap, index + i)) { + m = NULL; + goto out; + } + } + for (i = 0; i < npages; i++) + vm_reserv_populate(rv, index + i); + vm_phys_freecnt_adj(domain, -npages); +out: + vm_pagequeue_free_unlock(domain); + return (m); +} + +/* + * Allocates a contiguous set of physical pages of the given size "npages" + * from existing or newly created reservations. All of the physical pages + * must be at or above the given physical address "low" and below the given + * physical address "high". The given value "alignment" determines the + * alignment of the first physical page in the set. If the given value + * "boundary" is non-zero, then the set of physical pages cannot cross any + * physical address boundary that is a multiple of that value. Both + * "alignment" and "boundary" must be a power of two. + * + * The page "mpred" must immediately precede the offset "pindex" within the + * specified object. + * + * The object and free page queue must be locked. + */ +vm_page_t vm_reserv_alloc_contig(vm_object_t object, vm_pindex_t pindex, int domain, u_long npages, vm_paddr_t low, vm_paddr_t high, u_long alignment, vm_paddr_t boundary, vm_page_t mpred) @@ -434,7 +613,7 @@ vm_reserv_alloc_contig(vm_object_t object, vm_pindex_t u_long allocpages, maxpages, minpages; int i, index, n; - mtx_assert(&vm_page_queue_free_mtx, MA_OWNED); + vm_pagequeue_free_assert_locked(domain); VM_OBJECT_ASSERT_WLOCKED(object); KASSERT(npages != 0, ("vm_reserv_alloc_contig: npages is 0")); @@ -463,26 +642,13 @@ vm_reserv_alloc_contig(vm_object_t object, vm_pindex_t return (NULL); /* - * Look for an existing reservation. + * Callers should've extended an existing reservation prior to + * calling this function. If a reservation exists it is + * incompatible with the allocation. */ - if (mpred != NULL) { - KASSERT(mpred->object == object, - ("vm_reserv_alloc_contig: object doesn't contain mpred")); - KASSERT(mpred->pindex < pindex, - ("vm_reserv_alloc_contig: mpred doesn't precede pindex")); - rv = vm_reserv_from_page(mpred); - if (rv->object == object && vm_reserv_has_pindex(rv, pindex)) - goto found; - msucc = TAILQ_NEXT(mpred, listq); - } else - msucc = TAILQ_FIRST(&object->memq); - if (msucc != NULL) { - KASSERT(msucc->pindex > pindex, - ("vm_reserv_alloc_contig: msucc doesn't succeed pindex")); - rv = vm_reserv_from_page(msucc); - if (rv->object == object && vm_reserv_has_pindex(rv, pindex)) - goto found; - } + rv = vm_reserv_from_object(object, pindex, mpred, &msucc); + if (rv != NULL) + return (NULL); /* * Could at least one reservation fit between the first index to the @@ -565,22 +731,7 @@ vm_reserv_alloc_contig(vm_object_t object, vm_pindex_t KASSERT(rv->pages == m, ("vm_reserv_alloc_contig: reserv %p's pages is corrupted", rv)); - KASSERT(rv->object == NULL, - ("vm_reserv_alloc_contig: reserv %p isn't free", rv)); - LIST_INSERT_HEAD(&object->rvq, rv, objq); - rv->object = object; - rv->pindex = first; - rv->domain = domain; - KASSERT(rv->popcnt == 0, - ("vm_reserv_alloc_contig: reserv %p's popcnt is corrupted", - rv)); - KASSERT(!rv->inpartpopq, - ("vm_reserv_alloc_contig: reserv %p's inpartpopq is TRUE", - rv)); - for (i = 0; i < NPOPMAP; i++) - KASSERT(rv->popmap[i] == 0, - ("vm_reserv_alloc_contig: reserv %p's popmap is corrupted", - rv)); + vm_reserv_insert(rv, object, first); n = ulmin(VM_LEVEL_0_NPAGES - index, npages); for (i = 0; i < n; i++) vm_reserv_populate(rv, index + i); @@ -594,31 +745,66 @@ vm_reserv_alloc_contig(vm_object_t object, vm_pindex_t allocpages -= VM_LEVEL_0_NPAGES; } while (allocpages >= VM_LEVEL_0_NPAGES); return (m_ret); +} +/* + * Attempts to extend an existing reservation and allocate the page to the + * object. + * + * The page "mpred" must immediately precede the offset "pindex" within the + * specified object. + * + * The object must be locked. + */ +vm_page_t +vm_reserv_extend(int req, vm_object_t object, vm_pindex_t pindex, int domain, + vm_page_t mpred) +{ + vm_page_t m, msucc; + vm_reserv_t rv; + int index, free_count; + + VM_OBJECT_ASSERT_WLOCKED(object); + /* - * Found a matching reservation. + * Could a reservation currently exist? */ -found: - index = VM_RESERV_INDEX(object, pindex); - /* Does the allocation fit within the reservation? */ - if (index + npages > VM_LEVEL_0_NPAGES) + if (pindex < VM_RESERV_INDEX(object, pindex) || + pindex >= object->size || object->resident_page_count == 0) return (NULL); - m = &rv->pages[index]; - pa = VM_PAGE_TO_PHYS(m); - if (pa < low || pa + size > high || (pa & (alignment - 1)) != 0 || - ((pa ^ (pa + size - 1)) & ~(boundary - 1)) != 0) + + /* + * Look for an existing reservation. + */ + rv = vm_reserv_from_object(object, pindex, mpred, &msucc); + if (rv == NULL) return (NULL); - /* Handle vm_page_rename(m, new_object, ...). */ - for (i = 0; i < npages; i++) - if (popmap_is_set(rv->popmap, index + i)) - return (NULL); - for (i = 0; i < npages; i++) - vm_reserv_populate(rv, index + i); + + KASSERT(object != kernel_object || rv->domain == domain, + ("vm_reserv_extend: Domain mismatch from reservation.")); + domain = rv->domain; + index = VM_RESERV_INDEX(object, pindex); + m = &rv->pages[index]; + vm_pagequeue_free_lock(domain); + if (vm_page_available(domain, req, 1) == 0 || + /* Handle reclaim race. */ + rv->object != object || + /* Handle vm_page_rename(m, new_object, ...). */ + popmap_is_set(rv->popmap, index)) + m = NULL; + if (m != NULL) + vm_reserv_populate(rv, index); + free_count = vm_phys_freecnt_adj(domain, -1); + vm_pagequeue_free_unlock(domain); + + if (vm_paging_needed(free_count)) + pagedaemon_wakeup(); + return (m); } /* - * Allocates a page from an existing or newly created reservation. + * Allocates a page from an existing reservation. * * The page "mpred" must immediately precede the offset "pindex" within the * specified object. @@ -632,9 +818,9 @@ vm_reserv_alloc_page(vm_object_t object, vm_pindex_t p vm_page_t m, msucc; vm_pindex_t first, leftcap, rightcap; vm_reserv_t rv; - int i, index; + int index; - mtx_assert(&vm_page_queue_free_mtx, MA_OWNED); + vm_pagequeue_free_assert_locked(domain); VM_OBJECT_ASSERT_WLOCKED(object); /* @@ -645,26 +831,13 @@ vm_reserv_alloc_page(vm_object_t object, vm_pindex_t p return (NULL); /* - * Look for an existing reservation. + * Callers should've extended an existing reservation prior to + * calling this function. If a reservation exists it is + * incompatible with the allocation. */ - if (mpred != NULL) { - KASSERT(mpred->object == object, - ("vm_reserv_alloc_page: object doesn't contain mpred")); - KASSERT(mpred->pindex < pindex, - ("vm_reserv_alloc_page: mpred doesn't precede pindex")); - rv = vm_reserv_from_page(mpred); - if (rv->object == object && vm_reserv_has_pindex(rv, pindex)) - goto found; - msucc = TAILQ_NEXT(mpred, listq); - } else - msucc = TAILQ_FIRST(&object->memq); - if (msucc != NULL) { - KASSERT(msucc->pindex > pindex, - ("vm_reserv_alloc_page: msucc doesn't succeed pindex")); - rv = vm_reserv_from_page(msucc); - if (rv->object == object && vm_reserv_has_pindex(rv, pindex)) - goto found; - } + rv = vm_reserv_from_object(object, pindex, mpred, &msucc); + if (rv != NULL) + return (NULL); /* * Could a reservation fit between the first index to the left that @@ -712,37 +885,10 @@ vm_reserv_alloc_page(vm_object_t object, vm_pindex_t p rv = vm_reserv_from_page(m); KASSERT(rv->pages == m, ("vm_reserv_alloc_page: reserv %p's pages is corrupted", rv)); - KASSERT(rv->object == NULL, - ("vm_reserv_alloc_page: reserv %p isn't free", rv)); - LIST_INSERT_HEAD(&object->rvq, rv, objq); - rv->object = object; - rv->pindex = first; - rv->domain = domain; - KASSERT(rv->popcnt == 0, - ("vm_reserv_alloc_page: reserv %p's popcnt is corrupted", rv)); - KASSERT(!rv->inpartpopq, - ("vm_reserv_alloc_page: reserv %p's inpartpopq is TRUE", rv)); - for (i = 0; i < NPOPMAP; i++) - KASSERT(rv->popmap[i] == 0, - ("vm_reserv_alloc_page: reserv %p's popmap is corrupted", - rv)); + vm_reserv_insert(rv, object, first); index = VM_RESERV_INDEX(object, pindex); vm_reserv_populate(rv, index); return (&rv->pages[index]); - - /* - * Found a matching reservation. - */ -found: - index = VM_RESERV_INDEX(object, pindex); - m = &rv->pages[index]; - KASSERT(object != kernel_object || vm_phys_domidx(m) == domain, - ("vm_reserv_alloc_page: Domain mismatch from reservation.")); - /* Handle vm_page_rename(m, new_object, ...). */ - if (popmap_is_set(rv->popmap, index)) - return (NULL); - vm_reserv_populate(rv, index); - return (m); } /* @@ -759,14 +905,8 @@ vm_reserv_break(vm_reserv_t rv, vm_page_t m) { int begin_zeroes, hi, i, lo; - mtx_assert(&vm_page_queue_free_mtx, MA_OWNED); - KASSERT(rv->object != NULL, - ("vm_reserv_break: reserv %p is free", rv)); - KASSERT(!rv->inpartpopq, - ("vm_reserv_break: reserv %p's inpartpopq is TRUE", rv)); - LIST_REMOVE(rv, objq); - rv->object = NULL; - rv->domain = -1; + vm_pagequeue_free_assert_locked(rv->domain); + vm_reserv_remove(rv); if (m != NULL) { /* * Since the reservation is being broken, there is no harm in @@ -830,9 +970,25 @@ void vm_reserv_break_all(vm_object_t object) { vm_reserv_t rv; + int domain = -1; - mtx_lock(&vm_page_queue_free_mtx); + /* + * This access of object->rvq is unsynchronized so that the + * object rvq lock can nest after the pagequeue_free lock. We + * must check for races in the results. However, the object + * lock prevents new additions, so we are guaranteed that when + * it returns NULL the object is properly empty. + */ while ((rv = LIST_FIRST(&object->rvq)) != NULL) { + if (domain != rv->domain) { + if (domain != -1) + vm_pagequeue_free_unlock(domain); + domain = rv->domain; *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@freebsd.org Wed Jan 17 06:22:13 2018 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 96AE9E7EC84 for ; Wed, 17 Jan 2018 06:22:13 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4E9417EF92; Wed, 17 Jan 2018 06:22:13 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 899833ACC; Wed, 17 Jan 2018 06:22:12 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w0H6MCFn004239; Wed, 17 Jan 2018 06:22:12 GMT (envelope-from jeff@FreeBSD.org) Received: (from jeff@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w0H6MAib004215; Wed, 17 Jan 2018 06:22:10 GMT (envelope-from jeff@FreeBSD.org) Message-Id: <201801170622.w0H6MAib004215@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jeff set sender to jeff@FreeBSD.org using -f From: Jeff Roberson Date: Wed, 17 Jan 2018 06:22:10 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r328074 - in user/jeff/numa/sys: amd64/amd64 arm/arm cddl/compat/opensolaris/sys cddl/contrib/opensolaris/uts/common/fs/zfs compat/linprocfs fs/tmpfs i386/i386 kern mips/mips powerpc/po... X-SVN-Group: user X-SVN-Commit-Author: jeff X-SVN-Commit-Paths: in user/jeff/numa/sys: amd64/amd64 arm/arm cddl/compat/opensolaris/sys cddl/contrib/opensolaris/uts/common/fs/zfs compat/linprocfs fs/tmpfs i386/i386 kern mips/mips powerpc/powerpc sparc64/sparc64 sys... X-SVN-Commit-Revision: 328074 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 17 Jan 2018 06:22:13 -0000 Author: jeff Date: Wed Jan 17 06:22:10 2018 New Revision: 328074 URL: https://svnweb.freebsd.org/changeset/base/328074 Log: WIP per-domain page queue free locking and pageout targets. Added: user/jeff/numa/sys/vm/vm_pagequeue.h (contents, props changed) Modified: user/jeff/numa/sys/amd64/amd64/machdep.c user/jeff/numa/sys/arm/arm/machdep.c user/jeff/numa/sys/cddl/compat/opensolaris/sys/kmem.h user/jeff/numa/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c user/jeff/numa/sys/compat/linprocfs/linprocfs.c user/jeff/numa/sys/fs/tmpfs/tmpfs_subr.c user/jeff/numa/sys/i386/i386/machdep.c user/jeff/numa/sys/kern/init_main.c user/jeff/numa/sys/kern/subr_vmem.c user/jeff/numa/sys/mips/mips/machdep.c user/jeff/numa/sys/powerpc/powerpc/machdep.c user/jeff/numa/sys/sparc64/sparc64/machdep.c user/jeff/numa/sys/sys/vmmeter.h user/jeff/numa/sys/vm/swap_pager.c user/jeff/numa/sys/vm/uma_core.c user/jeff/numa/sys/vm/vm_extern.h user/jeff/numa/sys/vm/vm_init.c user/jeff/numa/sys/vm/vm_kern.c user/jeff/numa/sys/vm/vm_map.c user/jeff/numa/sys/vm/vm_meter.c user/jeff/numa/sys/vm/vm_object.c user/jeff/numa/sys/vm/vm_page.c user/jeff/numa/sys/vm/vm_page.h user/jeff/numa/sys/vm/vm_pageout.c user/jeff/numa/sys/vm/vm_pageout.h user/jeff/numa/sys/vm/vm_phys.c user/jeff/numa/sys/vm/vm_phys.h user/jeff/numa/sys/vm/vm_reserv.c user/jeff/numa/sys/vm/vnode_pager.c Modified: user/jeff/numa/sys/amd64/amd64/machdep.c ============================================================================== --- user/jeff/numa/sys/amd64/amd64/machdep.c Wed Jan 17 05:09:15 2018 (r328073) +++ user/jeff/numa/sys/amd64/amd64/machdep.c Wed Jan 17 06:22:10 2018 (r328074) @@ -279,7 +279,7 @@ cpu_startup(dummy) memsize = (uintmax_t)strtoul(sysenv, (char **)NULL, 10) << 10; freeenv(sysenv); } - if (memsize < ptoa((uintmax_t)vm_cnt.v_free_count)) + if (memsize < ptoa((uintmax_t)vm_free_count())) memsize = ptoa((uintmax_t)Maxmem); printf("real memory = %ju (%ju MB)\n", memsize, memsize >> 20); realmem = atop(memsize); @@ -306,8 +306,8 @@ cpu_startup(dummy) vm_ksubmap_init(&kmi); printf("avail memory = %ju (%ju MB)\n", - ptoa((uintmax_t)vm_cnt.v_free_count), - ptoa((uintmax_t)vm_cnt.v_free_count) / 1048576); + ptoa((uintmax_t)vm_free_count()), + ptoa((uintmax_t)vm_free_count()) / 1048576); /* * Set up buffers, so they can be used to read disk labels. Modified: user/jeff/numa/sys/arm/arm/machdep.c ============================================================================== --- user/jeff/numa/sys/arm/arm/machdep.c Wed Jan 17 05:09:15 2018 (r328073) +++ user/jeff/numa/sys/arm/arm/machdep.c Wed Jan 17 06:22:10 2018 (r328074) @@ -228,8 +228,8 @@ cpu_startup(void *dummy) (uintmax_t)arm32_ptob(realmem), (uintmax_t)arm32_ptob(realmem) / mbyte); printf("avail memory = %ju (%ju MB)\n", - (uintmax_t)arm32_ptob(vm_cnt.v_free_count), - (uintmax_t)arm32_ptob(vm_cnt.v_free_count) / mbyte); + (uintmax_t)arm32_ptob(vm_free_count()), + (uintmax_t)arm32_ptob(vm_free_count()) / mbyte); if (bootverbose) { arm_physmem_print_tables(); devmap_print_table(); Modified: user/jeff/numa/sys/cddl/compat/opensolaris/sys/kmem.h ============================================================================== --- user/jeff/numa/sys/cddl/compat/opensolaris/sys/kmem.h Wed Jan 17 05:09:15 2018 (r328073) +++ user/jeff/numa/sys/cddl/compat/opensolaris/sys/kmem.h Wed Jan 17 06:22:10 2018 (r328074) @@ -78,7 +78,7 @@ void kmem_reap(void); int kmem_debugging(void); void *calloc(size_t n, size_t s); -#define freemem vm_cnt.v_free_count +#define freemem vm_free_count() #define minfree vm_cnt.v_free_min #define heap_arena kernel_arena #define zio_arena NULL Modified: user/jeff/numa/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c ============================================================================== --- user/jeff/numa/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c Wed Jan 17 05:09:15 2018 (r328073) +++ user/jeff/numa/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c Wed Jan 17 06:22:10 2018 (r328074) @@ -379,7 +379,7 @@ static void arc_free_target_init(void *unused __unused) { - zfs_arc_free_target = vm_pageout_wakeup_thresh; + zfs_arc_free_target = (vm_cnt.v_free_min / 10) * 11; } SYSINIT(arc_free_target_init, SI_SUB_KTHREAD_PAGE, SI_ORDER_ANY, arc_free_target_init, NULL); Modified: user/jeff/numa/sys/compat/linprocfs/linprocfs.c ============================================================================== --- user/jeff/numa/sys/compat/linprocfs/linprocfs.c Wed Jan 17 05:09:15 2018 (r328073) +++ user/jeff/numa/sys/compat/linprocfs/linprocfs.c Wed Jan 17 06:22:10 2018 (r328074) @@ -156,7 +156,7 @@ linprocfs_domeminfo(PFS_FILL_ARGS) /* * The correct thing here would be: * - memfree = vm_cnt.v_free_count * PAGE_SIZE; + memfree = vm_free_count() * PAGE_SIZE; memused = memtotal - memfree; * * but it might mislead linux binaries into thinking there @@ -178,7 +178,7 @@ linprocfs_domeminfo(PFS_FILL_ARGS) * like unstaticizing it just for linprocfs's sake. */ buffers = 0; - cached = vm_cnt.v_inactive_count * PAGE_SIZE; + cached = vm_inactive_count() * PAGE_SIZE; sbuf_printf(sb, "MemTotal: %9lu kB\n" Modified: user/jeff/numa/sys/fs/tmpfs/tmpfs_subr.c ============================================================================== --- user/jeff/numa/sys/fs/tmpfs/tmpfs_subr.c Wed Jan 17 05:09:15 2018 (r328073) +++ user/jeff/numa/sys/fs/tmpfs/tmpfs_subr.c Wed Jan 17 06:22:10 2018 (r328074) @@ -106,7 +106,7 @@ tmpfs_mem_avail(void) { vm_ooffset_t avail; - avail = swap_pager_avail + vm_cnt.v_free_count - tmpfs_pages_reserved; + avail = swap_pager_avail + vm_free_count() - tmpfs_pages_reserved; if (__predict_false(avail < 0)) avail = 0; return (avail); Modified: user/jeff/numa/sys/i386/i386/machdep.c ============================================================================== --- user/jeff/numa/sys/i386/i386/machdep.c Wed Jan 17 05:09:15 2018 (r328073) +++ user/jeff/numa/sys/i386/i386/machdep.c Wed Jan 17 06:22:10 2018 (r328074) @@ -271,7 +271,7 @@ cpu_startup(dummy) memsize = (uintmax_t)strtoul(sysenv, (char **)NULL, 10) << 10; freeenv(sysenv); } - if (memsize < ptoa((uintmax_t)vm_cnt.v_free_count)) + if (memsize < ptoa((uintmax_t)vm_free_count())) memsize = ptoa((uintmax_t)Maxmem); printf("real memory = %ju (%ju MB)\n", memsize, memsize >> 20); realmem = atop(memsize); @@ -298,8 +298,8 @@ cpu_startup(dummy) vm_ksubmap_init(&kmi); printf("avail memory = %ju (%ju MB)\n", - ptoa((uintmax_t)vm_cnt.v_free_count), - ptoa((uintmax_t)vm_cnt.v_free_count) / 1048576); + ptoa((uintmax_t)vm_free_count()), + ptoa((uintmax_t)vm_free_count()) / 1048576); /* * Set up buffers, so they can be used to read disk labels. Modified: user/jeff/numa/sys/kern/init_main.c ============================================================================== --- user/jeff/numa/sys/kern/init_main.c Wed Jan 17 05:09:15 2018 (r328073) +++ user/jeff/numa/sys/kern/init_main.c Wed Jan 17 06:22:10 2018 (r328074) @@ -87,6 +87,7 @@ __FBSDID("$FreeBSD$"); #include #include +#include #include #include #include @@ -555,7 +556,7 @@ proc0_init(void *dummy __unused) p->p_limit->pl_rlimit[RLIMIT_STACK].rlim_cur = dflssiz; p->p_limit->pl_rlimit[RLIMIT_STACK].rlim_max = maxssiz; /* Cast to avoid overflow on i386/PAE. */ - pageablemem = ptoa((vm_paddr_t)vm_cnt.v_free_count); + pageablemem = ptoa((vm_paddr_t)vm_free_count()); p->p_limit->pl_rlimit[RLIMIT_RSS].rlim_cur = p->p_limit->pl_rlimit[RLIMIT_RSS].rlim_max = pageablemem; p->p_limit->pl_rlimit[RLIMIT_MEMLOCK].rlim_cur = pageablemem / 3; Modified: user/jeff/numa/sys/kern/subr_vmem.c ============================================================================== --- user/jeff/numa/sys/kern/subr_vmem.c Wed Jan 17 05:09:15 2018 (r328073) +++ user/jeff/numa/sys/kern/subr_vmem.c Wed Jan 17 06:22:10 2018 (r328074) @@ -59,6 +59,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include "opt_vm.h" @@ -72,6 +73,8 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include +#include #define VMEM_OPTORDER 5 #define VMEM_OPTVALUE (1 << VMEM_OPTORDER) Modified: user/jeff/numa/sys/mips/mips/machdep.c ============================================================================== --- user/jeff/numa/sys/mips/mips/machdep.c Wed Jan 17 05:09:15 2018 (r328073) +++ user/jeff/numa/sys/mips/mips/machdep.c Wed Jan 17 06:22:10 2018 (r328074) @@ -210,8 +210,8 @@ cpu_startup(void *dummy) vm_ksubmap_init(&kmi); printf("avail memory = %ju (%juMB)\n", - ptoa((uintmax_t)vm_cnt.v_free_count), - ptoa((uintmax_t)vm_cnt.v_free_count) / 1048576); + ptoa((uintmax_t)vm_free_count()), + ptoa((uintmax_t)vm_free_count()) / 1048576); cpu_init_interrupts(); /* Modified: user/jeff/numa/sys/powerpc/powerpc/machdep.c ============================================================================== --- user/jeff/numa/sys/powerpc/powerpc/machdep.c Wed Jan 17 05:09:15 2018 (r328073) +++ user/jeff/numa/sys/powerpc/powerpc/machdep.c Wed Jan 17 06:22:10 2018 (r328074) @@ -213,8 +213,8 @@ cpu_startup(void *dummy) vm_ksubmap_init(&kmi); printf("avail memory = %ju (%ju MB)\n", - ptoa((uintmax_t)vm_cnt.v_free_count), - ptoa((uintmax_t)vm_cnt.v_free_count) / 1048576); + ptoa((uintmax_t)vm_free_count()), + ptoa((uintmax_t)vm_free_count()) / 1048576); /* * Set up buffers, so they can be used to read disk labels. Modified: user/jeff/numa/sys/sparc64/sparc64/machdep.c ============================================================================== --- user/jeff/numa/sys/sparc64/sparc64/machdep.c Wed Jan 17 05:09:15 2018 (r328073) +++ user/jeff/numa/sys/sparc64/sparc64/machdep.c Wed Jan 17 06:22:10 2018 (r328074) @@ -190,8 +190,8 @@ cpu_startup(void *arg) EVENTHANDLER_REGISTER(shutdown_final, sparc64_shutdown_final, NULL, SHUTDOWN_PRI_LAST); - printf("avail memory = %lu (%lu MB)\n", vm_cnt.v_free_count * PAGE_SIZE, - vm_cnt.v_free_count / ((1024 * 1024) / PAGE_SIZE)); + printf("avail memory = %lu (%lu MB)\n", vm_free_count() * PAGE_SIZE, + vm_free_count() / ((1024 * 1024) / PAGE_SIZE)); if (bootverbose) printf("machine: %s\n", sparc64_model); Modified: user/jeff/numa/sys/sys/vmmeter.h ============================================================================== --- user/jeff/numa/sys/sys/vmmeter.h Wed Jan 17 05:09:15 2018 (r328073) +++ user/jeff/numa/sys/sys/vmmeter.h Wed Jan 17 06:22:10 2018 (r328074) @@ -141,23 +141,19 @@ struct vmmeter { u_int v_interrupt_free_min; /* (c) reserved pages for int code */ u_int v_free_severe; /* (c) severe page depletion point */ u_int v_wire_count VMMETER_ALIGNED; /* (a) pages wired down */ - u_int v_active_count VMMETER_ALIGNED; /* (a) pages active */ - u_int v_inactive_count VMMETER_ALIGNED; /* (a) pages inactive */ - u_int v_laundry_count VMMETER_ALIGNED; /* (a) pages eligible for - laundering */ - u_int v_free_count VMMETER_ALIGNED; /* (f) pages free */ }; #endif /* _KERNEL || _WANT_VMMETER */ #ifdef _KERNEL extern struct vmmeter vm_cnt; -extern u_int vm_pageout_wakeup_thresh; #define VM_CNT_ADD(var, x) counter_u64_add(vm_cnt.var, x) #define VM_CNT_INC(var) VM_CNT_ADD(var, 1) #define VM_CNT_FETCH(var) counter_u64_fetch(vm_cnt.var) +u_int vm_free_count(void); + /* * Return TRUE if we are under our severe low-free-pages threshold * @@ -168,7 +164,8 @@ static inline int vm_page_count_severe(void) { - return (vm_cnt.v_free_severe > vm_cnt.v_free_count); + /* XXX */ + return (vm_cnt.v_free_severe > vm_free_count()); } /* @@ -184,50 +181,9 @@ static inline int vm_page_count_min(void) { - return (vm_cnt.v_free_min > vm_cnt.v_free_count); + /* XXX */ + return (vm_cnt.v_free_min > vm_free_count()); } -/* - * Return TRUE if we have not reached our free page target during - * free page recovery operations. - */ -static inline int -vm_page_count_target(void) -{ - - return (vm_cnt.v_free_target > vm_cnt.v_free_count); -} - -/* - * Return the number of pages we need to free-up or cache - * A positive number indicates that we do not have enough free pages. - */ -static inline int -vm_paging_target(void) -{ - - return (vm_cnt.v_free_target - vm_cnt.v_free_count); -} - -/* - * Returns TRUE if the pagedaemon needs to be woken up. - */ -static inline int -vm_paging_needed(u_int free_count) -{ - - return (free_count < vm_pageout_wakeup_thresh); -} - -/* - * Return the number of pages we need to launder. - * A positive number indicates that we have a shortfall of clean pages. - */ -static inline int -vm_laundry_target(void) -{ - - return (vm_paging_target()); -} #endif /* _KERNEL */ #endif /* _SYS_VMMETER_H_ */ Modified: user/jeff/numa/sys/vm/swap_pager.c ============================================================================== --- user/jeff/numa/sys/vm/swap_pager.c Wed Jan 17 05:09:15 2018 (r328073) +++ user/jeff/numa/sys/vm/swap_pager.c Wed Jan 17 06:22:10 2018 (r328074) @@ -2327,7 +2327,7 @@ swapoff_one(struct swdevt *sp, struct ucred *cred) * of data we will have to page back in, plus an epsilon so * the system doesn't become critically low on swap space. */ - if (vm_cnt.v_free_count + swap_pager_avail < nblks + nswap_lowat) + if (vm_free_count() + swap_pager_avail < nblks + nswap_lowat) return (ENOMEM); /* Modified: user/jeff/numa/sys/vm/uma_core.c ============================================================================== --- user/jeff/numa/sys/vm/uma_core.c Wed Jan 17 05:09:15 2018 (r328073) +++ user/jeff/numa/sys/vm/uma_core.c Wed Jan 17 06:22:10 2018 (r328074) @@ -3409,7 +3409,7 @@ uma_large_malloc_domain(vm_size_t size, int domain, in slab->us_data = (void *)addr; slab->us_flags = UMA_SLAB_KERNEL | UMA_SLAB_MALLOC; slab->us_size = size; - slab->us_domain = vm_phys_domidx(PHYS_TO_VM_PAGE( + slab->us_domain = vm_phys_domain(PHYS_TO_VM_PAGE( pmap_kextract(addr))); uma_total_inc(size); } else { Modified: user/jeff/numa/sys/vm/vm_extern.h ============================================================================== --- user/jeff/numa/sys/vm/vm_extern.h Wed Jan 17 05:09:15 2018 (r328073) +++ user/jeff/numa/sys/vm/vm_extern.h Wed Jan 17 06:22:10 2018 (r328074) @@ -122,5 +122,8 @@ struct sf_buf *vm_imgact_map_page(vm_object_t object, void vm_imgact_unmap_page(struct sf_buf *sf); void vm_thread_dispose(struct thread *td); int vm_thread_new(struct thread *td, int pages); +u_int vm_active_count(void); +u_int vm_inactive_count(void); +u_int vm_laundry_count(void); #endif /* _KERNEL */ #endif /* !_VM_EXTERN_H_ */ Modified: user/jeff/numa/sys/vm/vm_init.c ============================================================================== --- user/jeff/numa/sys/vm/vm_init.c Wed Jan 17 05:09:15 2018 (r328073) +++ user/jeff/numa/sys/vm/vm_init.c Wed Jan 17 06:22:10 2018 (r328074) @@ -89,6 +89,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include Modified: user/jeff/numa/sys/vm/vm_kern.c ============================================================================== --- user/jeff/numa/sys/vm/vm_kern.c Wed Jan 17 05:09:15 2018 (r328073) +++ user/jeff/numa/sys/vm/vm_kern.c Wed Jan 17 06:22:10 2018 (r328074) @@ -92,6 +92,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include #include @@ -205,9 +206,9 @@ retry: vmem_free(vmem, addr, size); return (0); } - KASSERT(vm_phys_domidx(m) == domain, + KASSERT(vm_phys_domain(m) == domain, ("kmem_alloc_attr_domain: Domain mismatch %d != %d", - vm_phys_domidx(m), domain)); + vm_phys_domain(m), domain)); if ((flags & M_ZERO) && (m->flags & PG_ZERO) == 0) pmap_zero_page(m); m->valid = VM_PAGE_BITS_ALL; @@ -288,9 +289,9 @@ retry: vmem_free(vmem, addr, size); return (0); } - KASSERT(vm_phys_domidx(m) == domain, + KASSERT(vm_phys_domain(m) == domain, ("kmem_alloc_contig_domain: Domain mismatch %d != %d", - vm_phys_domidx(m), domain)); + vm_phys_domain(m), domain)); end_m = m + npages; tmp = addr; for (; m < end_m; m++) { @@ -452,9 +453,9 @@ retry: kmem_unback(object, addr, i); return (KERN_NO_SPACE); } - KASSERT(vm_phys_domidx(m) == domain, + KASSERT(vm_phys_domain(m) == domain, ("kmem_back_domain: Domain mismatch %d != %d", - vm_phys_domidx(m), domain)); + vm_phys_domain(m), domain)); if (flags & M_ZERO && (m->flags & PG_ZERO) == 0) pmap_zero_page(m); KASSERT((m->oflags & VPO_UNMANAGED) != 0, @@ -514,7 +515,7 @@ _kmem_unback(vm_object_t object, vm_offset_t addr, vm_ end = offset + size; VM_OBJECT_WLOCK(object); m = vm_page_lookup(object, atop(offset)); - domain = vm_phys_domidx(m); + domain = vm_phys_domain(m); for (; offset < end; offset += PAGE_SIZE, m = next) { next = vm_page_next(m); vm_page_unwire(m, PQ_NONE); Modified: user/jeff/numa/sys/vm/vm_map.c ============================================================================== --- user/jeff/numa/sys/vm/vm_map.c Wed Jan 17 05:09:15 2018 (r328073) +++ user/jeff/numa/sys/vm/vm_map.c Wed Jan 17 06:22:10 2018 (r328074) @@ -2016,7 +2016,7 @@ vm_map_pmap_enter(vm_map_t map, vm_offset_t addr, vm_p * free pages allocating pv entries. */ if (((flags & MAP_PREFAULT_MADVISE) != 0 && - vm_cnt.v_free_count < vm_cnt.v_free_reserved) || + vm_page_count_severe()) || ((flags & MAP_PREFAULT_PARTIAL) != 0 && tmpidx >= threshold)) { psize = tmpidx; Modified: user/jeff/numa/sys/vm/vm_meter.c ============================================================================== --- user/jeff/numa/sys/vm/vm_meter.c Wed Jan 17 05:09:15 2018 (r328073) +++ user/jeff/numa/sys/vm/vm_meter.c Wed Jan 17 06:22:10 2018 (r328074) @@ -53,6 +53,8 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include +#include #include #include #include @@ -213,9 +215,11 @@ vmtotal(SYSCTL_HANDLER_ARGS) total.t_dw++; else total.t_sl++; +#if 0 /* XXX */ if (td->td_wchan == &vm_cnt.v_free_count) total.t_pw++; +#endif } break; case TDS_CAN_RUN: @@ -283,7 +287,7 @@ vmtotal(SYSCTL_HANDLER_ARGS) } } mtx_unlock(&vm_object_list_mtx); - total.t_free = vm_cnt.v_free_count; + total.t_free = vm_free_count(); #if defined(COMPAT_FREEBSD11) /* sysctl(8) allocates twice as much memory as reported by sysctl(3) */ if (curproc->p_osrel < P_OSREL_VMTOTAL64 && (req->oldlen == @@ -339,7 +343,7 @@ sysctl_handle_vmstat(SYSCTL_HANDLER_ARGS) #define VM_STATS(parent, var, descr) \ SYSCTL_OID(parent, OID_AUTO, var, CTLTYPE_U64 | CTLFLAG_MPSAFE | \ - CTLFLAG_RD, &vm_cnt.var, 0, sysctl_handle_vmstat, "QU", descr); + CTLFLAG_RD, &vm_cnt.var, 0, sysctl_handle_vmstat, "QU", descr) #define VM_STATS_VM(var, descr) VM_STATS(_vm_stats_vm, var, descr) #define VM_STATS_SYS(var, descr) VM_STATS(_vm_stats_sys, var, descr) @@ -379,19 +383,36 @@ VM_STATS_VM(v_vforkpages, "VM pages affected by vfork( VM_STATS_VM(v_rforkpages, "VM pages affected by rfork()"); VM_STATS_VM(v_kthreadpages, "VM pages affected by fork() by kernel"); +static int +sysctl_handle_vmstat_proc(SYSCTL_HANDLER_ARGS) +{ + u_int (*fn)(void); + uint32_t val; + + fn = arg1; + val = fn(); + return (SYSCTL_OUT(req, &val, sizeof(val))); +} + +#define VM_STATS_PROC(var, descr, fn) \ + SYSCTL_OID(_vm_stats_vm, OID_AUTO, var, CTLTYPE_U32 | CTLFLAG_MPSAFE | \ + CTLFLAG_RD, fn, 0, sysctl_handle_vmstat_proc, "IU", descr) + #define VM_STATS_UINT(var, descr) \ SYSCTL_UINT(_vm_stats_vm, OID_AUTO, var, CTLFLAG_RD, &vm_cnt.var, 0, descr) + VM_STATS_UINT(v_page_size, "Page size in bytes"); VM_STATS_UINT(v_page_count, "Total number of pages in system"); VM_STATS_UINT(v_free_reserved, "Pages reserved for deadlock"); VM_STATS_UINT(v_free_target, "Pages desired free"); VM_STATS_UINT(v_free_min, "Minimum low-free-pages threshold"); -VM_STATS_UINT(v_free_count, "Free pages"); +VM_STATS_PROC(v_free_count, "Free pages", vm_free_count); VM_STATS_UINT(v_wire_count, "Wired pages"); -VM_STATS_UINT(v_active_count, "Active pages"); +VM_STATS_PROC(v_active_count, "Active pages", vm_active_count); VM_STATS_UINT(v_inactive_target, "Desired inactive pages"); -VM_STATS_UINT(v_inactive_count, "Inactive pages"); -VM_STATS_UINT(v_laundry_count, "Pages eligible for laundering"); +VM_STATS_PROC(v_inactive_count, "Inactive pages", vm_inactive_count); +VM_STATS_PROC(v_laundry_count, "Pages eligible for laundering", + vm_laundry_count); VM_STATS_UINT(v_pageout_free_min, "Min pages reserved for kernel"); VM_STATS_UINT(v_interrupt_free_min, "Reserved pages for interrupt code"); VM_STATS_UINT(v_free_severe, "Severe page depletion point"); @@ -406,3 +427,50 @@ SYSCTL_UINT(_vm_stats_vm, OID_AUTO, v_cache_count, CTL SYSCTL_UINT(_vm_stats_vm, OID_AUTO, v_tcached, CTLFLAG_RD, SYSCTL_NULL_UINT_PTR, 0, "Dummy for compatibility"); #endif + +u_int +vm_free_count(void) +{ + u_int v; + int i; + + v = 0; + for (i = 0; i < vm_ndomains; i++) + v += vm_dom[i].vmd_free_count; + + return (v); +} + +u_int +vm_active_count(void) +{ + u_int v; + int i; + + v = 0; + for (i = 0; i < vm_ndomains; i++) + v += vm_dom[i].vmd_pagequeues[PQ_ACTIVE].pq_cnt; + + return (v); +} + +u_int +vm_inactive_count(void) +{ + u_int v; + int i; + + v = 0; + for (i = 0; i < vm_ndomains; i++) + v += vm_dom[i].vmd_pagequeues[PQ_INACTIVE].pq_cnt; + + return (v); +} + +u_int +vm_laundry_count(void) +{ + + return (vm_dom[0].vmd_pagequeues[PQ_LAUNDRY].pq_cnt); +} + Modified: user/jeff/numa/sys/vm/vm_object.c ============================================================================== --- user/jeff/numa/sys/vm/vm_object.c Wed Jan 17 05:09:15 2018 (r328073) +++ user/jeff/numa/sys/vm/vm_object.c Wed Jan 17 06:22:10 2018 (r328074) @@ -96,6 +96,8 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include +#include #include #include #include Modified: user/jeff/numa/sys/vm/vm_page.c ============================================================================== --- user/jeff/numa/sys/vm/vm_page.c Wed Jan 17 05:09:15 2018 (r328073) +++ user/jeff/numa/sys/vm/vm_page.c Wed Jan 17 06:22:10 2018 (r328074) @@ -115,8 +115,9 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include +#include +#include #include #include #include @@ -131,7 +132,6 @@ __FBSDID("$FreeBSD$"); */ struct vm_domain vm_dom[MAXMEMDOM]; -struct mtx_padalign __exclusive_cache_line vm_page_queue_free_mtx; struct mtx_padalign __exclusive_cache_line pa_lock[PA_LOCK_COUNT]; @@ -159,16 +159,13 @@ static int sysctl_vm_page_blacklist(SYSCTL_HANDLER_ARG SYSCTL_PROC(_vm, OID_AUTO, page_blacklist, CTLTYPE_STRING | CTLFLAG_RD | CTLFLAG_MPSAFE, NULL, 0, sysctl_vm_page_blacklist, "A", "Blacklist pages"); -/* Is the page daemon waiting for free pages? */ -static int vm_pageout_pages_needed; - static uma_zone_t fakepg_zone; static void vm_page_alloc_check(vm_page_t m); static void vm_page_clear_dirty_mask(vm_page_t m, vm_page_bits_t pagebits); static void vm_page_enqueue(uint8_t queue, vm_page_t m); static void vm_page_free_phys(vm_page_t m); -static void vm_page_free_wakeup(void); +static void vm_page_free_wakeup(int domain); static void vm_page_init(void *dummy); static int vm_page_insert_after(vm_page_t m, vm_object_t object, vm_pindex_t pindex, vm_page_t mpred); @@ -176,7 +173,7 @@ static void vm_page_insert_radixdone(vm_page_t m, vm_o vm_page_t mpred); static int vm_page_reclaim_run(int req_class, int domain, u_long npages, vm_page_t m_run, vm_paddr_t high); -static int vm_page_alloc_fail(vm_object_t object, int req); +static int vm_page_alloc_fail(vm_object_t object, int domain, int req); SYSINIT(vm_page, SI_SUB_VM, SI_ORDER_SECOND, vm_page_init, NULL); @@ -325,7 +322,7 @@ vm_page_blacklist_check(char *list, char *end) m = vm_phys_paddr_to_vm_page(pa); if (m == NULL) continue; - domain = vm_phys_domidx(m); + domain = vm_phys_domain(m); vm_pagequeue_free_lock(domain); ret = vm_phys_unfree_page(m); vm_pagequeue_free_unlock(domain); @@ -396,23 +393,15 @@ vm_page_domain_init(struct vm_domain *vmd) struct vm_pagequeue *pq; int i; + bzero(vmd, sizeof(*vmd)); *__DECONST(char **, &vmd->vmd_pagequeues[PQ_INACTIVE].pq_name) = "vm inactive pagequeue"; - *__DECONST(u_int **, &vmd->vmd_pagequeues[PQ_INACTIVE].pq_vcnt) = - &vm_cnt.v_inactive_count; *__DECONST(char **, &vmd->vmd_pagequeues[PQ_ACTIVE].pq_name) = "vm active pagequeue"; - *__DECONST(u_int **, &vmd->vmd_pagequeues[PQ_ACTIVE].pq_vcnt) = - &vm_cnt.v_active_count; *__DECONST(char **, &vmd->vmd_pagequeues[PQ_LAUNDRY].pq_name) = "vm laundry pagequeue"; - *__DECONST(int **, &vmd->vmd_pagequeues[PQ_LAUNDRY].pq_vcnt) = - &vm_cnt.v_laundry_count; *__DECONST(char **, &vmd->vmd_pagequeues[PQ_UNSWAPPABLE].pq_name) = "vm unswappable pagequeue"; - /* Unswappable dirty pages are counted as being in the laundry. */ - *__DECONST(int **, &vmd->vmd_pagequeues[PQ_UNSWAPPABLE].pq_vcnt) = - &vm_cnt.v_laundry_count; vmd->vmd_page_count = 0; vmd->vmd_free_count = 0; vmd->vmd_segs = 0; @@ -423,6 +412,8 @@ vm_page_domain_init(struct vm_domain *vmd) mtx_init(&pq->pq_mutex, pq->pq_name, "vm pagequeue", MTX_DEF | MTX_DUPOK); } + mtx_init(&vmd->vmd_pagequeue_free_mtx, "vm page free queue", NULL, + MTX_DEF); } /* @@ -490,7 +481,6 @@ vm_page_startup(vm_offset_t vaddr) /* * Initialize the page and queue locks. */ - mtx_init(&vm_page_queue_free_mtx, "vm page free queue", NULL, MTX_DEF); for (i = 0; i < PA_LOCK_COUNT; i++) mtx_init(&pa_lock[i], "vm page", NULL, MTX_DEF); for (i = 0; i < vm_ndomains; i++) @@ -692,7 +682,6 @@ vm_page_startup(vm_offset_t vaddr) * physical memory allocator's free lists. */ vm_cnt.v_page_count = 0; - vm_cnt.v_free_count = 0; for (segind = 0; segind < vm_phys_nsegs; segind++) { seg = &vm_phys_segs[segind]; for (m = seg->first_page, pa = seg->start; pa < seg->end; @@ -716,7 +705,7 @@ vm_page_startup(vm_offset_t vaddr) vm_pagequeue_free_lock(seg->domain); vm_phys_free_contig(m, pagecount); - vm_phys_freecnt_adj(seg->domain, (int)pagecount); + vm_pagequeue_freecnt_adj(seg->domain, (int)pagecount); vm_pagequeue_free_unlock(seg->domain); vm_cnt.v_page_count += (u_int)pagecount; @@ -1652,8 +1641,10 @@ vm_page_alloc_after(vm_object_t object, vm_pindex_t pi int vm_page_available(int domain, int req, int npages) { + struct vm_domain *vmd; vm_pagequeue_free_assert_locked(domain); + vmd = &vm_dom[domain]; req = req & VM_ALLOC_CLASS_MASK; /* @@ -1662,12 +1653,11 @@ vm_page_available(int domain, int req, int npages) if (curproc == pageproc && req != VM_ALLOC_INTERRUPT) req = VM_ALLOC_SYSTEM; - /* XXX Global counts. */ - if (vm_cnt.v_free_count >= npages + vm_cnt.v_free_reserved || + if (vmd->vmd_free_count >= npages + vmd->vmd_free_reserved || (req == VM_ALLOC_SYSTEM && - vm_cnt.v_free_count >= npages + vm_cnt.v_interrupt_free_min) || + vmd->vmd_free_count >= npages + vmd->vmd_interrupt_free_min) || (req == VM_ALLOC_INTERRUPT && - vm_cnt.v_free_count >= npages)) + vmd->vmd_free_count >= npages)) return (1); return (0); @@ -1702,10 +1692,15 @@ vm_page_alloc_domain_after(vm_object_t object, vm_pind again: m = NULL; +#if VM_NRESERVLEVEL > 0 if (reserv && - (m = vm_reserv_extend(req, object, pindex, domain, mpred)) != NULL) + (m = vm_reserv_extend(req, object, pindex, domain, mpred)) + != NULL) { + domain = vm_phys_domain(m); goto found; - mtx_lock(&vm_page_queue_free_mtx); + } +#endif + vm_pagequeue_free_lock(domain); if (vm_page_available(domain, req, 1)) { /* * Can we allocate the page from a reservation? @@ -1734,7 +1729,7 @@ again: /* * Not allocatable, give up. */ - if (vm_page_alloc_fail(object, req)) + if (vm_page_alloc_fail(object, domain, req)) goto again; return (NULL); } @@ -1743,16 +1738,18 @@ again: * At this point we had better have found a good page. */ KASSERT(m != NULL, ("missing page")); - free_count = vm_phys_freecnt_adj(domain, -1); - mtx_unlock(&vm_page_queue_free_mtx); + free_count = vm_pagequeue_freecnt_adj(domain, -1); + vm_pagequeue_free_unlock(domain); /* * Don't wakeup too often - wakeup the pageout daemon when * we would be nearly out of memory. */ - if (vm_paging_needed(free_count)) - pagedaemon_wakeup(); + if (vm_paging_needed(domain, free_count)) + pagedaemon_wakeup(domain); +#if VM_NRESERVLEVEL > 0 found: +#endif vm_page_alloc_check(m); /* @@ -1785,7 +1782,7 @@ found: if (object != NULL) { if (vm_page_insert_after(m, object, pindex, mpred)) { - pagedaemon_wakeup(); + pagedaemon_wakeup(domain); if (req & VM_ALLOC_WIRED) { atomic_subtract_int(&vm_cnt.v_wire_count, 1); m->wire_count = 0; @@ -1916,11 +1913,13 @@ again: #if VM_NRESERVLEVEL > 0 if (reserv && (m_ret = vm_reserv_extend_contig(req, object, pindex, domain, - npages, low, high, alignment, boundary, mpred)) != NULL) + npages, low, high, alignment, boundary, mpred)) != NULL) { + domain = vm_phys_domain(m_ret); goto found; + } #endif m_ret = NULL; - mtx_lock(&vm_page_queue_free_mtx); + vm_pagequeue_free_lock(domain); if (vm_page_available(domain, req, npages)) { /* * Can we allocate the pages from a reservation? @@ -1943,13 +1942,15 @@ retry: #endif } if (m_ret == NULL) { - if (vm_page_alloc_fail(object, req)) + if (vm_page_alloc_fail(object, domain, req)) goto again; return (NULL); } - vm_phys_freecnt_adj(domain, -npages); - mtx_unlock(&vm_page_queue_free_mtx); + vm_pagequeue_freecnt_adj(domain, -npages); + vm_pagequeue_free_unlock(domain); +#if VM_NRESERVLEVEL > 0 found: +#endif for (m = m_ret; m < &m_ret[npages]; m++) vm_page_alloc_check(m); @@ -1985,7 +1986,7 @@ found: m->oflags = oflags; if (object != NULL) { if (vm_page_insert_after(m, object, pindex, mpred)) { - pagedaemon_wakeup(); + pagedaemon_wakeup(domain); if ((req & VM_ALLOC_WIRED) != 0) atomic_subtract_int( &vm_cnt.v_wire_count, npages); @@ -2015,8 +2016,8 @@ found: pmap_page_set_memattr(m, memattr); pindex++; } - if (vm_paging_needed(vm_cnt.v_free_count)) - pagedaemon_wakeup(); + if (vm_paging_needed(domain, vm_dom[domain].vmd_free_count)) + pagedaemon_wakeup(domain); return (m_ret); } @@ -2085,17 +2086,17 @@ vm_page_alloc_freelist_domain(int domain, int freelist * Do not allocate reserved pages unless the req has asked for it. */ again: - mtx_lock(&vm_page_queue_free_mtx); + vm_pagequeue_free_lock(domain); if (vm_page_available(domain, req, 1)) m = vm_phys_alloc_freelist_pages(domain, freelist, VM_FREEPOOL_DIRECT, 0); if (m == NULL) { - if (vm_page_alloc_fail(NULL, req)) + if (vm_page_alloc_fail(NULL, domain, req)) goto again; return (NULL); } - free_count = vm_phys_freecnt_adj(domain, -1); - mtx_unlock(&vm_page_queue_free_mtx); + free_count = vm_pagequeue_freecnt_adj(domain, -1); + vm_pagequeue_free_unlock(domain); vm_page_alloc_check(m); /* @@ -2116,8 +2117,8 @@ again: } /* Unmanaged pages don't use "act_count". */ m->oflags = VPO_UNMANAGED; - if (vm_paging_needed(free_count)) - pagedaemon_wakeup(); + if (vm_paging_needed(domain, free_count)) + pagedaemon_wakeup(domain); return (m); } @@ -2491,7 +2492,7 @@ retry: unlock: VM_OBJECT_WUNLOCK(object); } else { - MPASS(vm_phys_domidx(m) == domain); + MPASS(vm_phys_domain(m) == domain); vm_pagequeue_free_lock(domain); order = m->order; if (order < VM_NFREEORDER) { @@ -2517,13 +2518,13 @@ unlock: if (m_mtx != NULL) mtx_unlock(m_mtx); if ((m = SLIST_FIRST(&free)) != NULL) { - MPASS(vm_phys_domidx(m) == domain); + MPASS(vm_phys_domain(m) == domain); vm_pagequeue_free_lock(domain); do { SLIST_REMOVE_HEAD(&free, plinks.s.ss); vm_page_free_phys(m); } while ((m = SLIST_FIRST(&free)) != NULL); - vm_page_free_wakeup(); + vm_page_free_wakeup(domain); vm_pagequeue_free_unlock(domain); } return (error); @@ -2564,6 +2565,7 @@ bool vm_page_reclaim_contig_domain(int domain, int req, u_long npages, vm_paddr_t low, vm_paddr_t high, u_long alignment, vm_paddr_t boundary) { + struct vm_domain *vmd; vm_paddr_t curr_low; vm_page_t m_run, m_runs[NRUNS]; u_long count, reclaimed; @@ -2584,9 +2586,10 @@ vm_page_reclaim_contig_domain(int domain, int req, u_l * Return if the number of free pages cannot satisfy the requested * allocation. */ - count = vm_cnt.v_free_count; - if (count < npages + vm_cnt.v_free_reserved || (count < npages + - vm_cnt.v_interrupt_free_min && req_class == VM_ALLOC_SYSTEM) || + vmd = &vm_dom[domain]; + count = vmd->vmd_free_count; + if (count < npages + vmd->vmd_free_reserved || (count < npages + + vmd->vmd_interrupt_free_min && req_class == VM_ALLOC_SYSTEM) || (count < npages && req_class == VM_ALLOC_INTERRUPT)) return (false); @@ -2671,27 +2674,33 @@ vm_page_reclaim_contig(int req, u_long npages, vm_padd * - Called in various places before memory allocations. */ static void -_vm_wait(void) +vm_wait_domain(int domain) { + struct vm_domain *vmd; - mtx_assert(&vm_page_queue_free_mtx, MA_OWNED); + vm_pagequeue_free_assert_locked(domain); + vmd = &vm_dom[domain]; + if (curproc == pageproc) { - vm_pageout_pages_needed = 1; - msleep(&vm_pageout_pages_needed, &vm_page_queue_free_mtx, - PDROP | PSWP, "VMWait", 0); + vmd->vmd_pageout_pages_needed = 1; + msleep(&vmd->vmd_pageout_pages_needed, + &vmd->vmd_pagequeue_free_mtx, PDROP | PSWP, "VMWait", 0); } else { if (pageproc == NULL) panic("vm_wait in early boot"); - pagedaemon_wait(PVM, "vmwait"); + pagedaemon_wait(domain, PVM, "vmwait"); } } void vm_wait(void) { - +#if 0 /* XXX */ mtx_lock(&vm_page_queue_free_mtx); _vm_wait(); +#else + pause("vmxxx", 1); +#endif } /* @@ -2705,24 +2714,26 @@ vm_wait(void) * */ static int -vm_page_alloc_fail(vm_object_t object, int req) +vm_page_alloc_fail(vm_object_t object, int domain, int req) { + struct vm_domain *vmd; - mtx_assert(&vm_page_queue_free_mtx, MA_OWNED); + vm_pagequeue_free_assert_locked(domain); - atomic_add_int(&vm_pageout_deficit, + vmd = &vm_dom[domain]; + atomic_add_int(&vmd->vmd_pageout_deficit, max((u_int)req >> VM_ALLOC_COUNT_SHIFT, 1)); if (req & (VM_ALLOC_WAITOK | VM_ALLOC_WAITFAIL)) { if (object != NULL) VM_OBJECT_WUNLOCK(object); - _vm_wait(); + vm_wait_domain(domain); if (object != NULL) VM_OBJECT_WLOCK(object); if (req & VM_ALLOC_WAITOK) return (EAGAIN); } else { - mtx_unlock(&vm_page_queue_free_mtx); - pagedaemon_wakeup(); + vm_pagequeue_free_unlock(domain); + pagedaemon_wakeup(domain); } return (0); } @@ -2740,9 +2751,12 @@ vm_page_alloc_fail(vm_object_t object, int req) void vm_waitpfault(void) { - +#if 0 /* XXX */ mtx_lock(&vm_page_queue_free_mtx); pagedaemon_wait(PUSER, "pfault"); +#else + pause("vmxxx", 1); +#endif } struct vm_pagequeue * @@ -2752,7 +2766,7 @@ vm_page_pagequeue(vm_page_t m) if (vm_page_in_laundry(m)) return (&vm_dom[0].vmd_pagequeues[m->queue]); else - return (&vm_phys_domain(m)->vmd_pagequeues[m->queue]); + return (&vm_pagequeue_domain(m)->vmd_pagequeues[m->queue]); } /* @@ -2817,7 +2831,7 @@ vm_page_enqueue(uint8_t queue, vm_page_t m) if (queue == PQ_LAUNDRY || queue == PQ_UNSWAPPABLE) pq = &vm_dom[0].vmd_pagequeues[queue]; else - pq = &vm_phys_domain(m)->vmd_pagequeues[queue]; + pq = &vm_pagequeue_domain(m)->vmd_pagequeues[queue]; vm_pagequeue_lock(pq); m->queue = queue; TAILQ_INSERT_TAIL(&pq->pq_pl, m, plinks.q); @@ -2907,27 +2921,30 @@ vm_page_activate(vm_page_t m) * The page queues must be locked. */ static void -vm_page_free_wakeup(void) +vm_page_free_wakeup(int domain) { + struct vm_domain *vmd; - mtx_assert(&vm_page_queue_free_mtx, MA_OWNED); + vm_pagequeue_free_assert_locked(domain); + vmd = &vm_dom[domain]; + /* * if pageout daemon needs pages, then tell it that there are * some free. */ - if (vm_pageout_pages_needed && - vm_cnt.v_free_count >= vm_cnt.v_pageout_free_min) { - wakeup(&vm_pageout_pages_needed); - vm_pageout_pages_needed = 0; + if (vmd->vmd_pageout_pages_needed && + vmd->vmd_free_count >= vmd->vmd_pageout_free_min) { + wakeup(&vmd->vmd_pageout_pages_needed); + vmd->vmd_pageout_pages_needed = 0; } *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@freebsd.org Wed Jan 17 22:11:00 2018 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E6028EBB41A for ; Wed, 17 Jan 2018 22:11:00 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 889101320; Wed, 17 Jan 2018 22:11:00 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id B6D85154FD; Wed, 17 Jan 2018 22:10:59 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w0HMAxKu006704; Wed, 17 Jan 2018 22:10:59 GMT (envelope-from jeff@FreeBSD.org) Received: (from jeff@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w0HMAwD3006695; Wed, 17 Jan 2018 22:10:58 GMT (envelope-from jeff@FreeBSD.org) Message-Id: <201801172210.w0HMAwD3006695@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jeff set sender to jeff@FreeBSD.org using -f From: Jeff Roberson Date: Wed, 17 Jan 2018 22:10:58 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r328097 - in user/jeff/numa/sys: arm/arm fs/tmpfs kern powerpc/booke vm X-SVN-Group: user X-SVN-Commit-Author: jeff X-SVN-Commit-Paths: in user/jeff/numa/sys: arm/arm fs/tmpfs kern powerpc/booke vm X-SVN-Commit-Revision: 328097 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 17 Jan 2018 22:11:01 -0000 Author: jeff Date: Wed Jan 17 22:10:58 2018 New Revision: 328097 URL: https://svnweb.freebsd.org/changeset/base/328097 Log: Fix a reservation locking bug spotted by markj. Make the reservation object lock an array of locks. Fix the paging and laundry targets. Make laundry per-domain. Fix a compile error on powerpc and arm. Modified: user/jeff/numa/sys/arm/arm/pmap-v4.c user/jeff/numa/sys/fs/tmpfs/tmpfs_subr.c user/jeff/numa/sys/kern/subr_witness.c user/jeff/numa/sys/powerpc/booke/pmap.c user/jeff/numa/sys/vm/vm_meter.c user/jeff/numa/sys/vm/vm_page.c user/jeff/numa/sys/vm/vm_pageout.c user/jeff/numa/sys/vm/vm_pagequeue.h user/jeff/numa/sys/vm/vm_reserv.c Modified: user/jeff/numa/sys/arm/arm/pmap-v4.c ============================================================================== --- user/jeff/numa/sys/arm/arm/pmap-v4.c Wed Jan 17 21:52:12 2018 (r328096) +++ user/jeff/numa/sys/arm/arm/pmap-v4.c Wed Jan 17 22:10:58 2018 (r328097) @@ -3817,7 +3817,7 @@ pmap_get_pv_entry(void) pv_entry_count++; if (pv_entry_count > pv_entry_high_water) - pagedaemon_wakeup(); + pagedaemon_wakeup(0); /* XXX ARM NUMA */ ret_value = uma_zalloc(pvzone, M_NOWAIT); return ret_value; } Modified: user/jeff/numa/sys/fs/tmpfs/tmpfs_subr.c ============================================================================== --- user/jeff/numa/sys/fs/tmpfs/tmpfs_subr.c Wed Jan 17 21:52:12 2018 (r328096) +++ user/jeff/numa/sys/fs/tmpfs/tmpfs_subr.c Wed Jan 17 22:10:58 2018 (r328097) @@ -106,6 +106,7 @@ tmpfs_mem_avail(void) { vm_ooffset_t avail; + /* XXX */ avail = swap_pager_avail + vm_free_count() - tmpfs_pages_reserved; if (__predict_false(avail < 0)) avail = 0; Modified: user/jeff/numa/sys/kern/subr_witness.c ============================================================================== --- user/jeff/numa/sys/kern/subr_witness.c Wed Jan 17 21:52:12 2018 (r328096) +++ user/jeff/numa/sys/kern/subr_witness.c Wed Jan 17 22:10:58 2018 (r328097) @@ -139,7 +139,7 @@ __FBSDID("$FreeBSD$"); #define WITNESS_COUNT 1536 #endif #define WITNESS_HASH_SIZE 251 /* Prime, gives load factor < 2 */ -#define WITNESS_PENDLIST (2048 + MAXCPU) +#define WITNESS_PENDLIST (2048 + (MAXCPU * 4)) /* Allocate 256 KB of stack data space */ #define WITNESS_LO_DATA_COUNT 2048 Modified: user/jeff/numa/sys/powerpc/booke/pmap.c ============================================================================== --- user/jeff/numa/sys/powerpc/booke/pmap.c Wed Jan 17 21:52:12 2018 (r328096) +++ user/jeff/numa/sys/powerpc/booke/pmap.c Wed Jan 17 22:10:58 2018 (r328097) @@ -1183,7 +1183,7 @@ pv_alloc(void) pv_entry_count++; if (pv_entry_count > pv_entry_high_water) - pagedaemon_wakeup(); + pagedaemon_wakeup(0); /* XXX powerpc NUMA */ pv = uma_zalloc(pvzone, M_NOWAIT); return (pv); Modified: user/jeff/numa/sys/vm/vm_meter.c ============================================================================== --- user/jeff/numa/sys/vm/vm_meter.c Wed Jan 17 21:52:12 2018 (r328096) +++ user/jeff/numa/sys/vm/vm_meter.c Wed Jan 17 22:10:58 2018 (r328097) @@ -470,7 +470,13 @@ vm_inactive_count(void) u_int vm_laundry_count(void) { + u_int v; + int i; - return (vm_dom[0].vmd_pagequeues[PQ_LAUNDRY].pq_cnt); + v = 0; + for (i = 0; i < vm_ndomains; i++) + v += vm_dom[i].vmd_pagequeues[PQ_LAUNDRY].pq_cnt; + + return (v); } Modified: user/jeff/numa/sys/vm/vm_page.c ============================================================================== --- user/jeff/numa/sys/vm/vm_page.c Wed Jan 17 21:52:12 2018 (r328096) +++ user/jeff/numa/sys/vm/vm_page.c Wed Jan 17 22:10:58 2018 (r328097) @@ -484,7 +484,7 @@ vm_page_startup(vm_offset_t vaddr) for (i = 0; i < PA_LOCK_COUNT; i++) mtx_init(&pa_lock[i], "vm page", NULL, MTX_DEF); for (i = 0; i < vm_ndomains; i++) - vm_page_domain_init(&vm_dom[i]); + vm_page_domain_init(VM_DOMAIN(i)); /* * Almost all of the pages needed for bootstrapping UMA are used @@ -709,7 +709,7 @@ vm_page_startup(vm_offset_t vaddr) vm_pagequeue_free_unlock(seg->domain); vm_cnt.v_page_count += (u_int)pagecount; - vmd = &vm_dom[seg->domain]; + vmd = VM_DOMAIN(seg->domain);; vmd->vmd_page_count += (u_int)pagecount; vmd->vmd_segs |= 1UL << m->segind; break; @@ -1644,7 +1644,7 @@ vm_page_available(int domain, int req, int npages) struct vm_domain *vmd; vm_pagequeue_free_assert_locked(domain); - vmd = &vm_dom[domain]; + vmd = VM_DOMAIN(domain); req = req & VM_ALLOC_CLASS_MASK; /* @@ -1745,7 +1745,7 @@ again: * Don't wakeup too often - wakeup the pageout daemon when * we would be nearly out of memory. */ - if (vm_paging_needed(domain, free_count)) + if (vm_paging_needed(VM_DOMAIN(domain), free_count)) pagedaemon_wakeup(domain); #if VM_NRESERVLEVEL > 0 found: @@ -1874,6 +1874,7 @@ vm_page_alloc_contig_domain(vm_object_t object, vm_pin int req, u_long npages, vm_paddr_t low, vm_paddr_t high, u_long alignment, vm_paddr_t boundary, vm_memattr_t memattr) { + struct vm_domain *vmd; vm_page_t m, m_ret, mpred; u_int busy_lock, flags, oflags; #if VM_NRESERVLEVEL > 0 @@ -2016,7 +2017,8 @@ found: pmap_page_set_memattr(m, memattr); pindex++; } - if (vm_paging_needed(domain, vm_dom[domain].vmd_free_count)) + vmd = VM_DOMAIN(domain); + if (vm_paging_needed(vmd, vmd->vmd_free_count)) pagedaemon_wakeup(domain); return (m_ret); } @@ -2117,7 +2119,7 @@ again: } /* Unmanaged pages don't use "act_count". */ m->oflags = VPO_UNMANAGED; - if (vm_paging_needed(domain, free_count)) + if (vm_paging_needed(VM_DOMAIN(domain), free_count)) pagedaemon_wakeup(domain); return (m); } @@ -2586,7 +2588,7 @@ vm_page_reclaim_contig_domain(int domain, int req, u_l * Return if the number of free pages cannot satisfy the requested * allocation. */ - vmd = &vm_dom[domain]; + vmd = VM_DOMAIN(domain); count = vmd->vmd_free_count; if (count < npages + vmd->vmd_free_reserved || (count < npages + vmd->vmd_interrupt_free_min && req_class == VM_ALLOC_SYSTEM) || @@ -2679,7 +2681,7 @@ vm_wait_domain(int domain) struct vm_domain *vmd; vm_pagequeue_free_assert_locked(domain); - vmd = &vm_dom[domain]; + vmd = VM_DOMAIN(domain); if (curproc == pageproc) { vmd->vmd_pageout_pages_needed = 1; @@ -2720,7 +2722,7 @@ vm_page_alloc_fail(vm_object_t object, int domain, int vm_pagequeue_free_assert_locked(domain); - vmd = &vm_dom[domain]; + vmd = VM_DOMAIN(domain); atomic_add_int(&vmd->vmd_pageout_deficit, max((u_int)req >> VM_ALLOC_COUNT_SHIFT, 1)); if (req & (VM_ALLOC_WAITOK | VM_ALLOC_WAITFAIL)) { @@ -2763,10 +2765,7 @@ struct vm_pagequeue * vm_page_pagequeue(vm_page_t m) { - if (vm_page_in_laundry(m)) - return (&vm_dom[0].vmd_pagequeues[m->queue]); - else - return (&vm_pagequeue_domain(m)->vmd_pagequeues[m->queue]); + return (&vm_pagequeue_domain(m)->vmd_pagequeues[m->queue]); } /* @@ -2828,10 +2827,7 @@ vm_page_enqueue(uint8_t queue, vm_page_t m) KASSERT(queue < PQ_COUNT, ("vm_page_enqueue: invalid queue %u request for page %p", queue, m)); - if (queue == PQ_LAUNDRY || queue == PQ_UNSWAPPABLE) - pq = &vm_dom[0].vmd_pagequeues[queue]; - else - pq = &vm_pagequeue_domain(m)->vmd_pagequeues[queue]; + pq = &vm_pagequeue_domain(m)->vmd_pagequeues[queue]; vm_pagequeue_lock(pq); m->queue = queue; TAILQ_INSERT_TAIL(&pq->pq_pl, m, plinks.q); @@ -2926,7 +2922,7 @@ vm_page_free_wakeup(int domain) struct vm_domain *vmd; vm_pagequeue_free_assert_locked(domain); - vmd = &vm_dom[domain]; + vmd = VM_DOMAIN(domain); /* * if pageout daemon needs pages, then tell it that there are @@ -2942,7 +2938,7 @@ vm_page_free_wakeup(int domain) * high water mark. And wakeup scheduler process if we have * lots of memory. this process will swapin processes. */ - if (vmd->vmd_pages_needed && !vm_page_count_min()) { + if (vmd->vmd_pages_needed && !vm_paging_min(vmd)) { vmd->vmd_pages_needed = false; wakeup(&vmd->vmd_free_count); } Modified: user/jeff/numa/sys/vm/vm_pageout.c ============================================================================== --- user/jeff/numa/sys/vm/vm_pageout.c Wed Jan 17 21:52:12 2018 (r328096) +++ user/jeff/numa/sys/vm/vm_pageout.c Wed Jan 17 22:10:58 2018 (r328097) @@ -150,14 +150,6 @@ SDT_PROBE_DEFINE(vm, , , vm__lowmem_scan); static int vm_pageout_oom_seq = 12; -/* Pending request for dirty page laundering. */ -static enum { - VM_LAUNDRY_IDLE, - VM_LAUNDRY_BACKGROUND, - VM_LAUNDRY_SHORTFALL -} vm_laundry_request = VM_LAUNDRY_IDLE; -static int vm_inactq_scans; - static int vm_pageout_update_period; static int disable_swap_pageouts; static int lowmem_period = 10; @@ -958,10 +950,9 @@ vm_pageout_laundry_worker(void *arg) u_int inactq_scans, last_launder; int domain, last_target, launder, shortfall, shortfall_cycle, target; bool in_shortfall; - int i; domain = (uintptr_t)arg; - vmd = &vm_dom[domain]; + vmd = VM_DOMAIN(domain); pq = &vmd->vmd_pagequeues[PQ_LAUNDRY]; KASSERT(vmd->vmd_segs != 0, ("domain without segments")); vm_pageout_init_marker(&vmd->vmd_laundry_marker, PQ_LAUNDRY); @@ -1000,7 +991,7 @@ vm_pageout_laundry_worker(void *arg) target = shortfall; } else if (!in_shortfall) goto trybackground; - else if (shortfall_cycle == 0 || vm_laundry_target() <= 0) { + else if (shortfall_cycle == 0 || vm_laundry_target(vmd) <= 0) { /* * We recently entered shortfall and began laundering * pages. If we have completed that laundering run @@ -1034,12 +1025,9 @@ vm_pageout_laundry_worker(void *arg) * memory pressure required to trigger laundering decreases. */ trybackground: - nclean = 0; - for (i = 0; i < vm_ndomains; i++) { - nclean += vm_dom[i].vmd_free_count; - nclean += vm_dom[i].vmd_pagequeues[PQ_INACTIVE].pq_cnt; - } - ndirty = vm_laundry_count(); + nclean = vmd->vmd_free_count + + vmd->vmd_pagequeues[PQ_INACTIVE].pq_cnt; + ndirty = vmd->vmd_pagequeues[PQ_LAUNDRY].pq_cnt; if (target == 0 && inactq_scans != last_launder && ndirty * isqrt(inactq_scans - last_launder) >= nclean) { target = vm_background_launder_target; @@ -1085,8 +1073,8 @@ dolaundry: * kicks us. */ vm_pagequeue_lock(pq); - if (target == 0 && vm_laundry_request == VM_LAUNDRY_IDLE) - (void)mtx_sleep(&vm_laundry_request, + if (target == 0 && vmd->vmd_laundry_request == VM_LAUNDRY_IDLE) + (void)mtx_sleep(&vmd->vmd_laundry_request, vm_pagequeue_lockptr(pq), PVM, "launds", 0); /* @@ -1094,17 +1082,17 @@ dolaundry: * a shortfall laundering unless we're already in the middle of * one. This may preempt a background laundering. */ - if (vm_laundry_request == VM_LAUNDRY_SHORTFALL && + if (vmd->vmd_laundry_request == VM_LAUNDRY_SHORTFALL && (!in_shortfall || shortfall_cycle == 0)) { - shortfall = vm_laundry_target() + + shortfall = vm_laundry_target(vmd) + vmd->vmd_pageout_deficit; target = 0; } else shortfall = 0; if (target == 0) - vm_laundry_request = VM_LAUNDRY_IDLE; - inactq_scans = vm_inactq_scans; + vmd->vmd_laundry_request = VM_LAUNDRY_IDLE; + inactq_scans = vmd->vmd_inactq_scans; vm_pagequeue_unlock(pq); } } @@ -1133,7 +1121,7 @@ vm_pageout_scan(struct vm_domain *vmd, int pass) * If we need to reclaim memory ask kernel caches to return * some. We rate limit to avoid thrashing. */ - if (vmd == &vm_dom[0] && pass > 0 && + if (vmd == VM_DOMAIN(0) && pass > 0 && (time_uptime - lowmem_uptime) >= lowmem_period) { /* * Decrease registered cache sizes. @@ -1356,18 +1344,20 @@ drop_page: * keep count. */ if (starting_page_shortage > 0) { - pq = &vm_dom[0].vmd_pagequeues[PQ_LAUNDRY]; + pq = &vmd->vmd_pagequeues[PQ_LAUNDRY]; vm_pagequeue_lock(pq); - if (vm_laundry_request == VM_LAUNDRY_IDLE && + if (vmd->vmd_laundry_request == VM_LAUNDRY_IDLE && (pq->pq_cnt > 0 || atomic_load_acq_int(&swapdev_enabled))) { if (page_shortage > 0) { - vm_laundry_request = VM_LAUNDRY_SHORTFALL; + vmd->vmd_laundry_request = VM_LAUNDRY_SHORTFALL; VM_CNT_INC(v_pdshortfalls); - } else if (vm_laundry_request != VM_LAUNDRY_SHORTFALL) - vm_laundry_request = VM_LAUNDRY_BACKGROUND; - wakeup(&vm_laundry_request); + } else if (vmd->vmd_laundry_request != + VM_LAUNDRY_SHORTFALL) + vmd->vmd_laundry_request = + VM_LAUNDRY_BACKGROUND; + wakeup(&vmd->vmd_laundry_request); } - vm_inactq_scans++; + vmd->vmd_inactq_scans++; vm_pagequeue_unlock(pq); } @@ -1397,7 +1387,7 @@ drop_page: * ensuring that they can eventually be reused. */ inactq_shortage = vmd->vmd_inactive_target - (pq->pq_cnt + - /* XXX */vm_laundry_count() / act_scan_laundry_weight) + + vmd->vmd_pagequeues[PQ_LAUNDRY].pq_cnt / act_scan_laundry_weight) + vm_paging_target(vmd) + deficit + addl_page_shortage; inactq_shortage *= act_scan_laundry_weight; @@ -1751,7 +1741,7 @@ vm_pageout_oom(int shortage) _PRELE(bigproc); PROC_UNLOCK(bigproc); for (i = 0; i < vm_ndomains; i++) - wakeup(&vm_dom[i].vmd_free_count); + wakeup(&VM_DOMAIN(i)->vmd_free_count); } } @@ -1763,7 +1753,7 @@ vm_pageout_worker(void *arg) bool target_met; domain = (uintptr_t)arg; - vmd = &vm_dom[domain]; + vmd = VM_DOMAIN(domain); pass = 0; target_met = true; @@ -1798,7 +1788,7 @@ vm_pageout_worker(void *arg) * thread will, nonetheless, wait until another page is freed * or this wakeup is performed. */ - if (vmd->vmd_pages_needed && !vm_page_count_min() /* XXX */) { + if (vmd->vmd_pages_needed && !vm_paging_min(vmd)) { vmd->vmd_pages_needed = false; wakeup(&vmd->vmd_free_count); } @@ -1861,7 +1851,7 @@ vm_pageout_init_domain(int domain) { struct vm_domain *vmd; - vmd = &vm_dom[domain]; + vmd = VM_DOMAIN(domain); vmd->vmd_interrupt_free_min = 2; /* @@ -1909,7 +1899,7 @@ vm_pageout_init(void) struct vm_domain *vmd; vm_pageout_init_domain(i); - vmd = &vm_dom[i]; + vmd = VM_DOMAIN(i); vm_cnt.v_free_reserved += vmd->vmd_free_reserved; vm_cnt.v_free_target += vmd->vmd_free_target; vm_cnt.v_free_min += vmd->vmd_free_min; @@ -1961,6 +1951,12 @@ vm_pageout(void) panic("starting pageout for domain %d, error %d\n", i, error); } + error = kthread_add(vm_pageout_laundry_worker, + (void *)(uintptr_t)i, curproc, NULL, 0, 0, + "laundry: dom%d", i); + if (error != 0) + panic("starting laundry for domain %d, error %d", + i, error); } error = kthread_add(uma_reclaim_worker, NULL, curproc, NULL, 0, 0, "uma"); @@ -1978,7 +1974,7 @@ pagedaemon_wakeup(int domain) struct vm_domain *vmd; vm_pagequeue_free_assert_unlocked(domain); - vmd = &vm_dom[domain]; + vmd = VM_DOMAIN(domain); if (!vmd->vmd_pageout_wanted && curthread->td_proc != pageproc) { vmd->vmd_pageout_wanted = true; @@ -1997,7 +1993,7 @@ pagedaemon_wait(int domain, int pri, const char *wmesg struct vm_domain *vmd; vm_pagequeue_free_assert_locked(domain); - vmd = &vm_dom[domain]; + vmd = VM_DOMAIN(domain); /* * vmd_pageout_wanted may have been set by an advisory wakeup, but if Modified: user/jeff/numa/sys/vm/vm_pagequeue.h ============================================================================== --- user/jeff/numa/sys/vm/vm_pagequeue.h Wed Jan 17 21:52:12 2018 (r328096) +++ user/jeff/numa/sys/vm/vm_pagequeue.h Wed Jan 17 22:10:58 2018 (r328097) @@ -92,9 +92,13 @@ struct vm_domain { int vmd_pageout_deficit; /* Estimated number of pages deficit */ bool vmd_pages_needed; /* Are threads waiting for free pages? */ bool vmd_pageout_wanted; /* pageout daemon wait channel */ + int vmd_inactq_scans; + enum { + VM_LAUNDRY_IDLE = 0, + VM_LAUNDRY_BACKGROUND, + VM_LAUNDRY_SHORTFALL + } vmd_laundry_request; - - u_int vmd_free_reserved; /* (c) pages reserved for deadlock */ u_int vmd_free_target; /* (c) pages desired free */ u_int vmd_free_min; /* (c) pages desired free */ @@ -107,6 +111,8 @@ struct vm_domain { extern struct vm_domain vm_dom[MAXMEMDOM]; +#define VM_DOMAIN(n) (&vm_dom[(n)]) + #define vm_pagequeue_assert_locked(pq) mtx_assert(&(pq)->pq_mutex, MA_OWNED) #define vm_pagequeue_lock(pq) mtx_lock(&(pq)->pq_mutex) #define vm_pagequeue_lockptr(pq) (&(pq)->pq_mutex) @@ -119,7 +125,7 @@ extern struct vm_domain vm_dom[MAXMEMDOM]; #define vm_pagequeue_free_lock(n) \ mtx_lock(vm_pagequeue_free_lockptr((n))) #define vm_pagequeue_free_lockptr(n) \ - (&vm_dom[(n)].vmd_pagequeue_free_mtx) + (&VM_DOMAIN((n))->vmd_pagequeue_free_mtx) #define vm_pagequeue_free_unlock(n) \ mtx_unlock(vm_pagequeue_free_lockptr((n))) @@ -152,7 +158,7 @@ static inline struct vm_domain * vm_pagequeue_domain(vm_page_t m) { - return (&vm_dom[vm_phys_domain(m)]); + return (VM_DOMAIN(vm_phys_domain(m))); } /* @@ -170,22 +176,28 @@ vm_paging_target(struct vm_domain *vmd) * Returns TRUE if the pagedaemon needs to be woken up. */ static inline int -vm_paging_needed(int domain, u_int free_count) +vm_paging_needed(struct vm_domain *vmd, u_int free_count) { - return (free_count < vm_dom[domain].vmd_pageout_wakeup_thresh); + return (free_count < vmd->vmd_pageout_wakeup_thresh); } +static inline int +vm_paging_min(struct vm_domain *vmd) +{ + + return (vmd->vmd_free_min > vmd->vmd_free_count); +} + /* * Return the number of pages we need to launder. * A positive number indicates that we have a shortfall of clean pages. */ static inline int -vm_laundry_target(void) +vm_laundry_target(struct vm_domain *vmd) { - return (0); - /* XXX return (vm_paging_target()); */ + return (vm_paging_target(vmd)); } #endif /* _KERNEL */ Modified: user/jeff/numa/sys/vm/vm_reserv.c ============================================================================== --- user/jeff/numa/sys/vm/vm_reserv.c Wed Jan 17 21:52:12 2018 (r328096) +++ user/jeff/numa/sys/vm/vm_reserv.c Wed Jan 17 22:10:58 2018 (r328097) @@ -166,19 +166,20 @@ popmap_is_set(popmap_t popmap[], int i) * * A partially populated reservation can be broken and reclaimed at any time. * - * The reservation structure is synchronized by the per-domain pagequeue_free - * lock. The objq is synchronized by the vm_reserv_object lock. + * f - vm_pagequeue_free_lock + * o - vm_reserv_object_lock + * c - constant after boot */ struct vm_reserv { - TAILQ_ENTRY(vm_reserv) partpopq; - LIST_ENTRY(vm_reserv) objq; - vm_object_t object; /* containing object */ - vm_pindex_t pindex; /* offset within object */ - vm_page_t pages; /* first page of a superpage */ - int domain; /* NUMA domain, constant. */ - int popcnt; /* # of pages in use */ - char inpartpopq; - popmap_t popmap[NPOPMAP]; /* bit vector of used pages */ + TAILQ_ENTRY(vm_reserv) partpopq; /* (f) per-domain queue. */ + LIST_ENTRY(vm_reserv) objq; /* (o, f) object queue */ + vm_object_t object; /* (o, f) containing object */ + vm_pindex_t pindex; /* (o, f) offset in object */ + vm_page_t pages; /* (c) first page */ + int domain; /* (c) NUMA domain. */ + int popcnt; /* (f) # of pages in use */ + char inpartpopq; /* (f) */ + popmap_t popmap[NPOPMAP]; /* (f) bit vector, used pages */ }; /* @@ -239,8 +240,25 @@ static long vm_reserv_reclaimed; SYSCTL_LONG(_vm_reserv, OID_AUTO, reclaimed, CTLFLAG_RD, &vm_reserv_reclaimed, 0, "Cumulative number of reclaimed reservations"); -static struct mtx vm_reserv_object_mtx; +/* + * The object lock pool is used to synchronize the rvq. We can not use a + * pool mutex because it is required before malloc works. + * + * The "hash" function could be made faster without divide and modulo. + */ +#define VM_RESERV_OBJ_LOCK_COUNT MAXCPU +struct mtx_padalign vm_reserv_object_mtx[VM_RESERV_OBJ_LOCK_COUNT]; + +#define vm_reserv_object_lock_idx(object) \ + (((uintptr_t)object / sizeof(*object)) % VM_RESERV_OBJ_LOCK_COUNT) +#define vm_reserv_object_lock_ptr(object) \ + &vm_reserv_object_mtx[vm_reserv_object_lock_idx((object))] +#define vm_reserv_object_lock(object) \ + mtx_lock(vm_reserv_object_lock_ptr((object))) +#define vm_reserv_object_unlock(object) \ + mtx_unlock(vm_reserv_object_lock_ptr((object))) + static void vm_reserv_break(vm_reserv_t rv, vm_page_t m); static void vm_reserv_depopulate(vm_reserv_t rv, int index); static vm_reserv_t vm_reserv_from_page(vm_page_t m); @@ -311,9 +329,6 @@ sysctl_vm_reserv_partpopq(SYSCTL_HANDLER_ARGS) return (error); } -#define vm_reserv_object_lock(object) mtx_lock(&vm_reserv_object_mtx) -#define vm_reserv_object_unlock(object) mtx_unlock(&vm_reserv_object_mtx) - /* * Remove a reservation from the object's objq. */ @@ -350,8 +365,8 @@ vm_reserv_insert(vm_reserv_t rv, vm_object_t object, v for (i = 0; i < NPOPMAP; i++) KASSERT(rv->popmap[i] == 0, ("vm_reserv_insert: reserv %p's popmap is corrupted", rv)); - rv->pindex = pindex; vm_reserv_object_lock(object); + rv->pindex = pindex; rv->object = object; LIST_INSERT_HEAD(&object->rvq, rv, objq); vm_reserv_object_unlock(object); @@ -655,29 +670,36 @@ vm_reserv_alloc_contig(vm_object_t object, vm_pindex_t * Could at least one reservation fit between the first index to the * left that can be used ("leftcap") and the first index to the right * that cannot be used ("rightcap")? + * + * We must synchronize with the reserv object lock to protect the + * pindex/object of the resulting reservations against rename while + * we are inspecting. */ first = pindex - VM_RESERV_INDEX(object, pindex); + minpages = VM_RESERV_INDEX(object, pindex) + npages; + maxpages = roundup2(minpages, VM_LEVEL_0_NPAGES); + allocpages = maxpages; + vm_reserv_object_lock(object); if (mpred != NULL) { - /* XXX unlocked rv access */ if ((rv = vm_reserv_from_page(mpred))->object != object) leftcap = mpred->pindex + 1; else leftcap = rv->pindex + VM_LEVEL_0_NPAGES; - if (leftcap > first) + if (leftcap > first) { + vm_reserv_object_unlock(object); return (NULL); + } } - minpages = VM_RESERV_INDEX(object, pindex) + npages; - maxpages = roundup2(minpages, VM_LEVEL_0_NPAGES); - allocpages = maxpages; if (msucc != NULL) { - /* XXX unlocked rv access */ if ((rv = vm_reserv_from_page(msucc))->object != object) rightcap = msucc->pindex; else rightcap = rv->pindex; if (first + maxpages > rightcap) { - if (maxpages == VM_LEVEL_0_NPAGES) + if (maxpages == VM_LEVEL_0_NPAGES) { + vm_reserv_object_unlock(object); return (NULL); + } /* * At least one reservation will fit between "leftcap" @@ -688,6 +710,7 @@ vm_reserv_alloc_contig(vm_object_t object, vm_pindex_t allocpages = minpages; } } + vm_reserv_object_unlock(object); /* * Would the last new reservation extend past the end of the object? @@ -800,7 +823,7 @@ vm_reserv_extend(int req, vm_object_t object, vm_pinde free_count = vm_pagequeue_freecnt_adj(domain, -1); vm_pagequeue_free_unlock(domain); - if (vm_paging_needed(domain, free_count)) + if (vm_paging_needed(VM_DOMAIN(domain), free_count)) pagedaemon_wakeup(domain); return (m); @@ -845,26 +868,34 @@ vm_reserv_alloc_page(vm_object_t object, vm_pindex_t p /* * Could a reservation fit between the first index to the left that * can be used and the first index to the right that cannot be used? + * + * We must synchronize with the reserv object lock to protect the + * pindex/object of the resulting reservations against rename while + * we are inspecting. */ first = pindex - VM_RESERV_INDEX(object, pindex); + vm_reserv_object_lock(object); if (mpred != NULL) { - /* XXX unlocked rv access */ if ((rv = vm_reserv_from_page(mpred))->object != object) leftcap = mpred->pindex + 1; else leftcap = rv->pindex + VM_LEVEL_0_NPAGES; - if (leftcap > first) + if (leftcap > first) { + vm_reserv_object_unlock(object); return (NULL); + } } if (msucc != NULL) { - /* XXX unlocked rv access */ if ((rv = vm_reserv_from_page(msucc))->object != object) rightcap = msucc->pindex; else rightcap = rv->pindex; - if (first + VM_LEVEL_0_NPAGES > rightcap) + if (first + VM_LEVEL_0_NPAGES > rightcap) { + vm_reserv_object_unlock(object); return (NULL); + } } + vm_reserv_object_unlock(object); /* * Would a new reservation extend past the end of the object? @@ -1250,18 +1281,15 @@ vm_reserv_rename(vm_page_t m, vm_object_t new_object, if (rv->object == old_object) { vm_pagequeue_free_lock(rv->domain); if (rv->object == old_object) { - /* - * XXX Do we need to synchronize them simultaneously? - * or does the pagequeue_free lock protect enough? - */ vm_reserv_object_lock(old_object); + rv->object = NULL; LIST_REMOVE(rv, objq); vm_reserv_object_unlock(old_object); vm_reserv_object_lock(new_object); rv->object = new_object; + rv->pindex -= old_object_offset; LIST_INSERT_HEAD(&new_object->rvq, rv, objq); vm_reserv_object_unlock(new_object); - rv->pindex -= old_object_offset; } vm_pagequeue_free_unlock(rv->domain); } @@ -1293,6 +1321,7 @@ vm_reserv_startup(vm_offset_t *vaddr, vm_paddr_t end, { vm_paddr_t new_end; size_t size; + int i; /* * Calculate the size (in bytes) of the reservation array. Round up @@ -1312,7 +1341,9 @@ vm_reserv_startup(vm_offset_t *vaddr, vm_paddr_t end, VM_PROT_READ | VM_PROT_WRITE); bzero(vm_reserv_array, size); - mtx_init(&vm_reserv_object_mtx, "resv obj lock", NULL, MTX_DEF); + for (i = 0; i < VM_RESERV_OBJ_LOCK_COUNT; i++) + mtx_init(&vm_reserv_object_mtx[i], "resv obj lock", NULL, + MTX_DEF); /* * Return the next available physical address. From owner-svn-src-user@freebsd.org Thu Jan 18 09:17:07 2018 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5DB53EBF615 for ; Thu, 18 Jan 2018 09:17:07 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 3A13B81DF6; Thu, 18 Jan 2018 09:17:07 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 7B0C91C756; Thu, 18 Jan 2018 09:17:06 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w0I9H6Y2095729; Thu, 18 Jan 2018 09:17:06 GMT (envelope-from jeff@FreeBSD.org) Received: (from jeff@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w0I9H6OS095728; Thu, 18 Jan 2018 09:17:06 GMT (envelope-from jeff@FreeBSD.org) Message-Id: <201801180917.w0I9H6OS095728@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jeff set sender to jeff@FreeBSD.org using -f From: Jeff Roberson Date: Thu, 18 Jan 2018 09:17:06 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r328114 - user/jeff/numa/sys/vm X-SVN-Group: user X-SVN-Commit-Author: jeff X-SVN-Commit-Paths: user/jeff/numa/sys/vm X-SVN-Commit-Revision: 328114 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Jan 2018 09:17:07 -0000 Author: jeff Date: Thu Jan 18 09:17:06 2018 New Revision: 328114 URL: https://svnweb.freebsd.org/changeset/base/328114 Log: This call to lock should've been unlock. Reported by: pho Modified: user/jeff/numa/sys/vm/vm_page.c Modified: user/jeff/numa/sys/vm/vm_page.c ============================================================================== --- user/jeff/numa/sys/vm/vm_page.c Thu Jan 18 08:34:20 2018 (r328113) +++ user/jeff/numa/sys/vm/vm_page.c Thu Jan 18 09:17:06 2018 (r328114) @@ -2512,7 +2512,7 @@ unlock: else if (vm_reserv_is_page_free(m)) order = 0; #endif - vm_pagequeue_free_lock(domain); + vm_pagequeue_free_unlock(domain); if (order == VM_NFREEORDER) error = EINVAL; } From owner-svn-src-user@freebsd.org Thu Jan 18 11:05:53 2018 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 1BD86EC56AA for ; Thu, 18 Jan 2018 11:05:53 +0000 (UTC) (envelope-from pho@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id EBB0232F0; Thu, 18 Jan 2018 11:05:52 +0000 (UTC) (envelope-from pho@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 475261DA3F; Thu, 18 Jan 2018 11:05:52 +0000 (UTC) (envelope-from pho@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w0IB5qtY041634; Thu, 18 Jan 2018 11:05:52 GMT (envelope-from pho@FreeBSD.org) Received: (from pho@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w0IB5qGm041633; Thu, 18 Jan 2018 11:05:52 GMT (envelope-from pho@FreeBSD.org) Message-Id: <201801181105.w0IB5qGm041633@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pho set sender to pho@FreeBSD.org using -f From: Peter Holm Date: Thu, 18 Jan 2018 11:05:52 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r328117 - user/pho/stress2/testcases/link X-SVN-Group: user X-SVN-Commit-Author: pho X-SVN-Commit-Paths: user/pho/stress2/testcases/link X-SVN-Commit-Revision: 328117 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Jan 2018 11:05:53 -0000 Author: pho Date: Thu Jan 18 11:05:51 2018 New Revision: 328117 URL: https://svnweb.freebsd.org/changeset/base/328117 Log: Remove redundant test and added style fixes while here. Sponsored by: Dell EMC Isilon Modified: user/pho/stress2/testcases/link/link.c Modified: user/pho/stress2/testcases/link/link.c ============================================================================== --- user/pho/stress2/testcases/link/link.c Thu Jan 18 11:01:41 2018 (r328116) +++ user/pho/stress2/testcases/link/link.c Thu Jan 18 11:05:51 2018 (r328117) @@ -28,30 +28,30 @@ #include __FBSDID("$FreeBSD$"); -#include -#include -#include -#include -#include -#include #include -#include +#include + #include #include +#include +#include +#include +#include +#include #include "stress.h" -static char path[128]; static unsigned long size; +static char path[128]; int setup(int nb) { - int pct; - int64_t in; int64_t bl; - int64_t reserve_in; + int64_t in; int64_t reserve_bl; + int64_t reserve_in; + int pct; umask(0); path[0] = 0; @@ -66,8 +66,6 @@ setup(int nb) if (size > 32000 && op->hog == 0) size = 32000; /* arbitrary limit number of files pr. dir */ - if (size > LINK_MAX) - size = LINK_MAX; /* Resource requirements: */ reserve_in = 2 * op->incarnations + 7; @@ -109,8 +107,8 @@ cleanup(void) int test(void) { - int fd, i, j; pid_t pid; + int fd, i, j; char file[128]; char lfile[128]; From owner-svn-src-user@freebsd.org Thu Jan 18 11:07:41 2018 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id A1998EC5954 for ; Thu, 18 Jan 2018 11:07:41 +0000 (UTC) (envelope-from pho@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 7E3CB3549; Thu, 18 Jan 2018 11:07:41 +0000 (UTC) (envelope-from pho@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id D79B61DA45; Thu, 18 Jan 2018 11:07:40 +0000 (UTC) (envelope-from pho@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w0IB7eT2041745; Thu, 18 Jan 2018 11:07:40 GMT (envelope-from pho@FreeBSD.org) Received: (from pho@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w0IB7eij041744; Thu, 18 Jan 2018 11:07:40 GMT (envelope-from pho@FreeBSD.org) Message-Id: <201801181107.w0IB7eij041744@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pho set sender to pho@FreeBSD.org using -f From: Peter Holm Date: Thu, 18 Jan 2018 11:07:40 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r328118 - user/pho/stress2/tools X-SVN-Group: user X-SVN-Commit-Author: pho X-SVN-Commit-Paths: user/pho/stress2/tools X-SVN-Commit-Revision: 328118 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Jan 2018 11:07:41 -0000 Author: pho Date: Thu Jan 18 11:07:40 2018 New Revision: 328118 URL: https://svnweb.freebsd.org/changeset/base/328118 Log: Initial version of a simple setup script. Sponsored by: Dell EMC Isilon Added: user/pho/stress2/tools/setup.sh (contents, props changed) Added: user/pho/stress2/tools/setup.sh ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/pho/stress2/tools/setup.sh Thu Jan 18 11:07:40 2018 (r328118) @@ -0,0 +1,28 @@ +#!/bin/sh + +# Extract and install stress2, a tool to find kernel errors. + +# The default installation directory is /tmp/work +# Please note that stress2 was never meant to be a validation tool. + +# $FreeBSD$ + +[ `id -u ` -ne 0 ] && echo "Must be root!" && exit 1 + +set -e +echo -n "Enter non-root test user name: " +read testuser +id $testuser > /dev/null 2>&1 || + { echo "user \"$testuser\" not found."; exit 1; } +[ $testuser ] || exit 1 +work=${work:-/tmp/work} +mkdir -p $work +cd $work +echo "Extracting stress2 to $work" +svnlite checkout -q svn://svn.freebsd.org/base/user/pho/stress2 +cd stress2 +echo "testuser=$testuser" > `hostname` +make > /dev/null +echo "Tests to run are in $work/stress2/misc +To run all tests, type ./all.sh -on +To run for example all tmpfs tests, type ./all.sh -on `grep -l tmpfs *.sh`" From owner-svn-src-user@freebsd.org Thu Jan 18 16:22:06 2018 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 4F4C8EB53E4 for ; Thu, 18 Jan 2018 16:22:06 +0000 (UTC) (envelope-from pho@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 2AA2775907; Thu, 18 Jan 2018 16:22:06 +0000 (UTC) (envelope-from pho@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 6C7EB20F26; Thu, 18 Jan 2018 16:22:05 +0000 (UTC) (envelope-from pho@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w0IGM5WA078741; Thu, 18 Jan 2018 16:22:05 GMT (envelope-from pho@FreeBSD.org) Received: (from pho@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w0IGM5RV078740; Thu, 18 Jan 2018 16:22:05 GMT (envelope-from pho@FreeBSD.org) Message-Id: <201801181622.w0IGM5RV078740@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: pho set sender to pho@FreeBSD.org using -f From: Peter Holm Date: Thu, 18 Jan 2018 16:22:05 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r328131 - user/pho/stress2/misc X-SVN-Group: user X-SVN-Commit-Author: pho X-SVN-Commit-Paths: user/pho/stress2/misc X-SVN-Commit-Revision: 328131 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Jan 2018 16:22:06 -0000 Author: pho Date: Thu Jan 18 16:22:05 2018 New Revision: 328131 URL: https://svnweb.freebsd.org/changeset/base/328131 Log: Added a new test scenario. Sponsored by: Dell EMC Isilon Added: user/pho/stress2/misc/crossmp10.sh (contents, props changed) Added: user/pho/stress2/misc/crossmp10.sh ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ user/pho/stress2/misc/crossmp10.sh Thu Jan 18 16:22:05 2018 (r328131) @@ -0,0 +1,102 @@ +#!/bin/sh + +# +# Copyright (c) 2016 Dell EMC Isilon +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# 1. Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +# SUCH DAMAGE. +# +# $FreeBSD$ +# + +# ext2fs parallel mount & umount test scenario + +[ `id -u ` -ne 0 ] && echo "Must be root!" && exit 1 +[ -z "`which mke2fs`" ] && echo "mke2fs not found" && exit 0 + +. ../default.cfg + +CONT=/tmp/crossmp10.continue +N=4 +size=512 + +mounts=$N # Number of parallel scripts + +if [ $# -eq 0 ]; then + for i in `jot $mounts`; do + m=$(( i + mdstart - 1 )) + [ ! -d ${mntpoint}$m ] && + { mkdir ${mntpoint}$m; chmod 755 ${mntpoint}$m; } + mount | grep "${mntpoint}$m" | grep -q md$m && umount ${mntpoint}$m + mdconfig -l | grep -q md$m && mdconfig -d -u $m + + mdconfig -a -t swap -s ${size}m -u $m + bsdlabel -w md$m auto + mke2fs -m 0 /dev/md${m}$part > /dev/null 2>&1 + done + + # start the parallel tests + touch $CONT + for i in `jot $mounts`; do + m=$(( i + mdstart - 1 )) + ./$0 $m & + ./$0 find & + done + + wait + + for i in `jot $mounts`; do + m=$(( i + mdstart - 1 )) + mdconfig -d -u $m + done + +else + if [ $1 = find ]; then + while [ -f $CONT ]; do + find ${mntpoint}* -ls > /dev/null 2>&1 + sleep .1 + done + else + export runRUNTIME=30s + # The test: Parallel mount and unmounts + start=`date '+%s'` + while [ $((`date '+%s'` - start)) -lt 300 ]; do + m=$1 + mount -t ext2fs /dev/md${m}$part ${mntpoint}$m && + chmod 777 ${mntpoint}$m + export RUNDIR=${mntpoint}$m/stressX + export CTRLDIR=${mntpoint}$m/stressX.control + (cd ${mntpoint}$m && find . -delete) + su $testuser -c 'cd ..; ./run.sh disk.cfg' > /dev/null 2>&1 & + + sleep 2 + while mount | grep -q "on ${mntpoint}$m "; do + opt=$([ `jot -r 1 0 1` -eq 0 ] && echo "-f") + umount $opt ${mntpoint}$m > /dev/null 2>&1 + [ -f $CONT ] || break 2 + done + wait $! + done + rm -f $CONT + ../tools/killall.sh + fi +fi From owner-svn-src-user@freebsd.org Thu Jan 18 18:12:16 2018 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DAA62EBA620 for ; Thu, 18 Jan 2018 18:12:16 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (br1.CN84in.dnsmgr.net [69.59.192.140]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C598679C0F; Thu, 18 Jan 2018 18:12:16 +0000 (UTC) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: from pdx.rh.CN85.dnsmgr.net (localhost [127.0.0.1]) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3) with ESMTP id w0IICDJo068799; Thu, 18 Jan 2018 10:12:13 -0800 (PST) (envelope-from freebsd@pdx.rh.CN85.dnsmgr.net) Received: (from freebsd@localhost) by pdx.rh.CN85.dnsmgr.net (8.13.3/8.13.3/Submit) id w0IICD1Q068798; Thu, 18 Jan 2018 10:12:13 -0800 (PST) (envelope-from freebsd) From: "Rodney W. Grimes" Message-Id: <201801181812.w0IICD1Q068798@pdx.rh.CN85.dnsmgr.net> Subject: Re: svn commit: r328131 - user/pho/stress2/misc In-Reply-To: <201801181622.w0IGM5RV078740@repo.freebsd.org> To: Peter Holm Date: Thu, 18 Jan 2018 10:12:13 -0800 (PST) CC: src-committers@freebsd.org, svn-src-user@freebsd.org Reply-To: rgrimes@freebsd.org X-Mailer: ELM [version 2.4ME+ PL121h (25)] MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Jan 2018 18:12:17 -0000 [ Charset UTF-8 unsupported, converting... ] > Author: pho > Date: Thu Jan 18 16:22:05 2018 > New Revision: 328131 > URL: https://svnweb.freebsd.org/changeset/base/328131 > > Log: > Added a new test scenario. It may be helpful in the future when reading logs if you listed the test that was added here rather than just say you added a test, ie: Added ext2fs parallel mount & umount test scenario would be a much nicer svn log entry to read. Thanks, Rod > > Sponsored by: Dell EMC Isilon > > Added: > user/pho/stress2/misc/crossmp10.sh (contents, props changed) > > Added: user/pho/stress2/misc/crossmp10.sh > ============================================================================== > --- /dev/null 00:00:00 1970 (empty, because file is newly added) > +++ user/pho/stress2/misc/crossmp10.sh Thu Jan 18 16:22:05 2018 (r328131) > @@ -0,0 +1,102 @@ > +#!/bin/sh > + > +# > +# Copyright (c) 2016 Dell EMC Isilon > +# All rights reserved. > +# > +# Redistribution and use in source and binary forms, with or without > +# modification, are permitted provided that the following conditions > +# are met: > +# 1. Redistributions of source code must retain the above copyright > +# notice, this list of conditions and the following disclaimer. > +# 2. Redistributions in binary form must reproduce the above copyright > +# notice, this list of conditions and the following disclaimer in the > +# documentation and/or other materials provided with the distribution. > +# > +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND > +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE > +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE > +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE > +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL > +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS > +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) > +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT > +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY > +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF > +# SUCH DAMAGE. > +# > +# $FreeBSD$ > +# > + > +# ext2fs parallel mount & umount test scenario > + > +[ `id -u ` -ne 0 ] && echo "Must be root!" && exit 1 > +[ -z "`which mke2fs`" ] && echo "mke2fs not found" && exit 0 > + > +. ../default.cfg > + > +CONT=/tmp/crossmp10.continue > +N=4 > +size=512 > + > +mounts=$N # Number of parallel scripts > + > +if [ $# -eq 0 ]; then > + for i in `jot $mounts`; do > + m=$(( i + mdstart - 1 )) > + [ ! -d ${mntpoint}$m ] && > + { mkdir ${mntpoint}$m; chmod 755 ${mntpoint}$m; } > + mount | grep "${mntpoint}$m" | grep -q md$m && umount ${mntpoint}$m > + mdconfig -l | grep -q md$m && mdconfig -d -u $m > + > + mdconfig -a -t swap -s ${size}m -u $m > + bsdlabel -w md$m auto > + mke2fs -m 0 /dev/md${m}$part > /dev/null 2>&1 > + done > + > + # start the parallel tests > + touch $CONT > + for i in `jot $mounts`; do > + m=$(( i + mdstart - 1 )) > + ./$0 $m & > + ./$0 find & > + done > + > + wait > + > + for i in `jot $mounts`; do > + m=$(( i + mdstart - 1 )) > + mdconfig -d -u $m > + done > + > +else > + if [ $1 = find ]; then > + while [ -f $CONT ]; do > + find ${mntpoint}* -ls > /dev/null 2>&1 > + sleep .1 > + done > + else > + export runRUNTIME=30s > + # The test: Parallel mount and unmounts > + start=`date '+%s'` > + while [ $((`date '+%s'` - start)) -lt 300 ]; do > + m=$1 > + mount -t ext2fs /dev/md${m}$part ${mntpoint}$m && > + chmod 777 ${mntpoint}$m > + export RUNDIR=${mntpoint}$m/stressX > + export CTRLDIR=${mntpoint}$m/stressX.control > + (cd ${mntpoint}$m && find . -delete) > + su $testuser -c 'cd ..; ./run.sh disk.cfg' > /dev/null 2>&1 & > + > + sleep 2 > + while mount | grep -q "on ${mntpoint}$m "; do > + opt=$([ `jot -r 1 0 1` -eq 0 ] && echo "-f") > + umount $opt ${mntpoint}$m > /dev/null 2>&1 > + [ -f $CONT ] || break 2 > + done > + wait $! > + done > + rm -f $CONT > + ../tools/killall.sh > + fi > +fi > > -- Rod Grimes rgrimes@freebsd.org From owner-svn-src-user@freebsd.org Thu Jan 18 18:33:08 2018 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D25DDEBBBE5 for ; Thu, 18 Jan 2018 18:33:08 +0000 (UTC) (envelope-from pho@holm.cc) Received: from relay01.pair.com (relay01.pair.com [209.68.5.15]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 9A0C57ACD8; Thu, 18 Jan 2018 18:33:08 +0000 (UTC) (envelope-from pho@holm.cc) Received: from x2.osted.lan (87-58-223-204-dynamic.dk.customer.tdc.net [87.58.223.204]) by relay01.pair.com (Postfix) with ESMTP id 7BB78D00AF7; Thu, 18 Jan 2018 13:33:05 -0500 (EST) Received: from x2.osted.lan (localhost [127.0.0.1]) by x2.osted.lan (8.14.9/8.14.9) with ESMTP id w0IIX3Vl069827 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Thu, 18 Jan 2018 19:33:03 +0100 (CET) (envelope-from pho@x2.osted.lan) Received: (from pho@localhost) by x2.osted.lan (8.14.9/8.14.9/Submit) id w0IIX3uA069826; Thu, 18 Jan 2018 19:33:03 +0100 (CET) (envelope-from pho) Date: Thu, 18 Jan 2018 19:33:03 +0100 From: Peter Holm To: rgrimes@freebsd.org Cc: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: Re: svn commit: r328131 - user/pho/stress2/misc Message-ID: <20180118183303.GA69753@x2.osted.lan> References: <201801181622.w0IGM5RV078740@repo.freebsd.org> <201801181812.w0IICD1Q068798@pdx.rh.CN85.dnsmgr.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201801181812.w0IICD1Q068798@pdx.rh.CN85.dnsmgr.net> User-Agent: Mutt/1.5.23 (2014-03-12) X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Jan 2018 18:33:08 -0000 On Thu, Jan 18, 2018 at 10:12:13AM -0800, Rodney W. Grimes wrote: > [ Charset UTF-8 unsupported, converting... ] > > Author: pho > > Date: Thu Jan 18 16:22:05 2018 > > New Revision: 328131 > > URL: https://svnweb.freebsd.org/changeset/base/328131 > > > > Log: > > Added a new test scenario. > > It may be helpful in the future when reading logs if you > listed the test that was added here rather than just say > you added a test, ie: > Added ext2fs parallel mount & umount test scenario > > would be a much nicer svn log entry to read. > You are right, of cause. Thank you for reminding me. - Peter > Thanks, > Rod > > > > Sponsored by: Dell EMC Isilon > > > > Added: > > user/pho/stress2/misc/crossmp10.sh (contents, props changed) > > > > Added: user/pho/stress2/misc/crossmp10.sh > > ============================================================================== > > --- /dev/null 00:00:00 1970 (empty, because file is newly added) > > +++ user/pho/stress2/misc/crossmp10.sh Thu Jan 18 16:22:05 2018 (r328131) > > @@ -0,0 +1,102 @@ > > +#!/bin/sh > > + > > +# > > +# Copyright (c) 2016 Dell EMC Isilon > > +# All rights reserved. > > +# > > +# Redistribution and use in source and binary forms, with or without > > +# modification, are permitted provided that the following conditions > > +# are met: > > +# 1. Redistributions of source code must retain the above copyright > > +# notice, this list of conditions and the following disclaimer. > > +# 2. Redistributions in binary form must reproduce the above copyright > > +# notice, this list of conditions and the following disclaimer in the > > +# documentation and/or other materials provided with the distribution. > > +# > > +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND > > +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE > > +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE > > +# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE > > +# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL > > +# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS > > +# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) > > +# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT > > +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY > > +# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF > > +# SUCH DAMAGE. > > +# > > +# $FreeBSD$ > > +# > > + > > +# ext2fs parallel mount & umount test scenario > > + > > +[ `id -u ` -ne 0 ] && echo "Must be root!" && exit 1 > > +[ -z "`which mke2fs`" ] && echo "mke2fs not found" && exit 0 > > + > > +. ../default.cfg > > + > > +CONT=/tmp/crossmp10.continue > > +N=4 > > +size=512 > > + > > +mounts=$N # Number of parallel scripts > > + > > +if [ $# -eq 0 ]; then > > + for i in `jot $mounts`; do > > + m=$(( i + mdstart - 1 )) > > + [ ! -d ${mntpoint}$m ] && > > + { mkdir ${mntpoint}$m; chmod 755 ${mntpoint}$m; } > > + mount | grep "${mntpoint}$m" | grep -q md$m && umount ${mntpoint}$m > > + mdconfig -l | grep -q md$m && mdconfig -d -u $m > > + > > + mdconfig -a -t swap -s ${size}m -u $m > > + bsdlabel -w md$m auto > > + mke2fs -m 0 /dev/md${m}$part > /dev/null 2>&1 > > + done > > + > > + # start the parallel tests > > + touch $CONT > > + for i in `jot $mounts`; do > > + m=$(( i + mdstart - 1 )) > > + ./$0 $m & > > + ./$0 find & > > + done > > + > > + wait > > + > > + for i in `jot $mounts`; do > > + m=$(( i + mdstart - 1 )) > > + mdconfig -d -u $m > > + done > > + > > +else > > + if [ $1 = find ]; then > > + while [ -f $CONT ]; do > > + find ${mntpoint}* -ls > /dev/null 2>&1 > > + sleep .1 > > + done > > + else > > + export runRUNTIME=30s > > + # The test: Parallel mount and unmounts > > + start=`date '+%s'` > > + while [ $((`date '+%s'` - start)) -lt 300 ]; do > > + m=$1 > > + mount -t ext2fs /dev/md${m}$part ${mntpoint}$m && > > + chmod 777 ${mntpoint}$m > > + export RUNDIR=${mntpoint}$m/stressX > > + export CTRLDIR=${mntpoint}$m/stressX.control > > + (cd ${mntpoint}$m && find . -delete) > > + su $testuser -c 'cd ..; ./run.sh disk.cfg' > /dev/null 2>&1 & > > + > > + sleep 2 > > + while mount | grep -q "on ${mntpoint}$m "; do > > + opt=$([ `jot -r 1 0 1` -eq 0 ] && echo "-f") > > + umount $opt ${mntpoint}$m > /dev/null 2>&1 > > + [ -f $CONT ] || break 2 > > + done > > + wait $! > > + done > > + rm -f $CONT > > + ../tools/killall.sh > > + fi > > +fi > > > > > > -- > Rod Grimes rgrimes@freebsd.org From owner-svn-src-user@freebsd.org Fri Jan 19 21:19:59 2018 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 00AF6EC9229 for ; Fri, 19 Jan 2018 21:19:59 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id D06DB762D3; Fri, 19 Jan 2018 21:19:58 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 354F312D41; Fri, 19 Jan 2018 21:19:58 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w0JLJwwn013851; Fri, 19 Jan 2018 21:19:58 GMT (envelope-from jeff@FreeBSD.org) Received: (from jeff@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w0JLJver013842; Fri, 19 Jan 2018 21:19:57 GMT (envelope-from jeff@FreeBSD.org) Message-Id: <201801192119.w0JLJver013842@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jeff set sender to jeff@FreeBSD.org using -f From: Jeff Roberson Date: Fri, 19 Jan 2018 21:19:57 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r328172 - in user/jeff/numa/sys: kern sys vm X-SVN-Group: user X-SVN-Commit-Author: jeff X-SVN-Commit-Paths: in user/jeff/numa/sys: kern sys vm X-SVN-Commit-Revision: 328172 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Jan 2018 21:19:59 -0000 Author: jeff Date: Fri Jan 19 21:19:57 2018 New Revision: 328172 URL: https://svnweb.freebsd.org/changeset/base/328172 Log: Use bitsets for min and severe limit checks so that we can quickly determine if any domains are in shortfall and synchronously sleep on this condition. Provide some new vm_wait_* functions that are more precise for specific scenarios. Modified: user/jeff/numa/sys/kern/subr_vmem.c user/jeff/numa/sys/sys/vmmeter.h user/jeff/numa/sys/vm/vm_glue.c user/jeff/numa/sys/vm/vm_kern.c user/jeff/numa/sys/vm/vm_page.c user/jeff/numa/sys/vm/vm_pageout.h user/jeff/numa/sys/vm/vm_pagequeue.h user/jeff/numa/sys/vm/vm_swapout.c Modified: user/jeff/numa/sys/kern/subr_vmem.c ============================================================================== --- user/jeff/numa/sys/kern/subr_vmem.c Fri Jan 19 20:33:47 2018 (r328171) +++ user/jeff/numa/sys/kern/subr_vmem.c Fri Jan 19 21:19:57 2018 (r328172) @@ -644,7 +644,7 @@ vmem_bt_alloc(uma_zone_t zone, vm_size_t bytes, int do * possible due to M_USE_RESERVE page allocation. */ if (wait & M_WAITOK) - VM_WAIT; + vm_wait_domain(domain); return (NULL); } mtx_unlock(&vmem_bt_lock); Modified: user/jeff/numa/sys/sys/vmmeter.h ============================================================================== --- user/jeff/numa/sys/sys/vmmeter.h Fri Jan 19 20:33:47 2018 (r328171) +++ user/jeff/numa/sys/sys/vmmeter.h Fri Jan 19 21:19:57 2018 (r328172) @@ -146,7 +146,11 @@ struct vmmeter { #ifdef _KERNEL +#include + extern struct vmmeter vm_cnt; +extern domainset_t vm_min_domains; +extern domainset_t vm_severe_domains; #define VM_CNT_ADD(var, x) counter_u64_add(vm_cnt.var, x) #define VM_CNT_INC(var) VM_CNT_ADD(var, 1) @@ -164,8 +168,7 @@ static inline int vm_page_count_severe(void) { - /* XXX */ - return (vm_cnt.v_free_severe > vm_free_count()); + return (!DOMAINSET_EMPTY(&vm_severe_domains)); } /* @@ -181,8 +184,7 @@ static inline int vm_page_count_min(void) { - /* XXX */ - return (vm_cnt.v_free_min > vm_free_count()); + return (!DOMAINSET_EMPTY(&vm_min_domains)); } #endif /* _KERNEL */ Modified: user/jeff/numa/sys/vm/vm_glue.c ============================================================================== --- user/jeff/numa/sys/vm/vm_glue.c Fri Jan 19 20:33:47 2018 (r328171) +++ user/jeff/numa/sys/vm/vm_glue.c Fri Jan 19 21:19:57 2018 (r328172) @@ -552,7 +552,7 @@ vm_forkproc(struct thread *td, struct proc *p2, struct } while (vm_page_count_severe()) { - VM_WAIT; + vm_wait_severe(); } if ((flags & RFMEM) == 0) { Modified: user/jeff/numa/sys/vm/vm_kern.c ============================================================================== --- user/jeff/numa/sys/vm/vm_kern.c Fri Jan 19 20:33:47 2018 (r328171) +++ user/jeff/numa/sys/vm/vm_kern.c Fri Jan 19 21:19:57 2018 (r328172) @@ -197,7 +197,7 @@ retry: if (!vm_page_reclaim_contig_domain(domain, pflags, 1, low, high, PAGE_SIZE, 0) && (flags & M_WAITOK) != 0) - VM_WAIT; + vm_wait_domain(domain); VM_OBJECT_WLOCK(object); tries++; goto retry; @@ -281,7 +281,7 @@ retry: if (!vm_page_reclaim_contig_domain(domain, pflags, npages, low, high, alignment, boundary) && (flags & M_WAITOK) != 0) - VM_WAIT; + vm_wait_domain(domain); VM_OBJECT_WLOCK(object); tries++; goto retry; Modified: user/jeff/numa/sys/vm/vm_page.c ============================================================================== --- user/jeff/numa/sys/vm/vm_page.c Fri Jan 19 20:33:47 2018 (r328171) +++ user/jeff/numa/sys/vm/vm_page.c Fri Jan 19 21:19:57 2018 (r328172) @@ -134,7 +134,11 @@ __FBSDID("$FreeBSD$"); struct vm_domain vm_dom[MAXMEMDOM]; struct mtx_padalign __exclusive_cache_line pa_lock[PA_LOCK_COUNT]; +struct mtx_padalign __exclusive_cache_line vm_domainset_lock; +domainset_t __exclusive_cache_line vm_min_domains; +domainset_t __exclusive_cache_line vm_severe_domains; + /* * bogus page -- for I/O to/from partially complete buffers, * or for paging into sparsely invalid regions. @@ -481,6 +485,7 @@ vm_page_startup(vm_offset_t vaddr) /* * Initialize the page and queue locks. */ + mtx_init(&vm_domainset_lock, "vm domainset lock", NULL, MTX_DEF); for (i = 0; i < PA_LOCK_COUNT; i++) mtx_init(&pa_lock[i], "vm page", NULL, MTX_DEF); for (i = 0; i < vm_ndomains; i++) @@ -2668,14 +2673,85 @@ vm_page_reclaim_contig(int req, u_long npages, vm_padd return (ret); } +/* + * Set the domain in the appropriate page level domainset. + */ +void +vm_domain_set(int domain) +{ + struct vm_domain *vmd; + vmd = VM_DOMAIN(domain); + mtx_lock(&vm_domainset_lock); + if (!vmd->vmd_minset && vm_paging_min(vmd)) { + vmd->vmd_minset = 1; + DOMAINSET_SET(domain, &vm_min_domains); + } + if (!vmd->vmd_severeset && vm_paging_severe(vmd)) { + vmd->vmd_severeset = 1; + DOMAINSET_CLR(domain, &vm_severe_domains); + } + mtx_unlock(&vm_domainset_lock); +} + /* - * vm_wait: (also see VM_WAIT macro) + * Clear the domain from the appropriate page level domainset. + */ +static void +vm_domain_clear(int domain) +{ + struct vm_domain *vmd; + + vmd = VM_DOMAIN(domain); + mtx_lock(&vm_domainset_lock); + if (vmd->vmd_minset && !vm_paging_min(vmd)) { + vmd->vmd_minset = 0; + DOMAINSET_CLR(domain, &vm_min_domains); + if (!vm_page_count_min()) + wakeup(&vm_min_domains); + } + if (vmd->vmd_severeset && !vm_paging_severe(vmd)) { + vmd->vmd_severeset = 0; + DOMAINSET_CLR(domain, &vm_severe_domains); + if (!vm_page_count_severe()) + wakeup(&vm_severe_domains); + } + mtx_unlock(&vm_domainset_lock); +} + +/* + * Wait for free pages to exceed the min threshold globally. + */ +void +vm_wait_min(void) +{ + + mtx_lock(&vm_domainset_lock); + while (vm_page_count_min()) + msleep(&vm_min_domains, &vm_domainset_lock, PVM, "vmwait", 0); + mtx_unlock(&vm_domainset_lock); +} + +/* + * Wait for free pages to exceed the severe threshold globally. + */ +void +vm_wait_severe(void) +{ + + mtx_lock(&vm_domainset_lock); + while (vm_page_count_min()) + msleep(&vm_min_domains, &vm_domainset_lock, PVM, "vmwait", 0); + mtx_unlock(&vm_domainset_lock); +} + +/* + * vm_wait_domain: * * Sleep until free pages are available for allocation. - * - Called in various places before memory allocations. + * - Called in various places after failed memory allocations. */ -static void +void vm_wait_domain(int domain) { struct vm_domain *vmd; @@ -2694,6 +2770,12 @@ vm_wait_domain(int domain) } } +/* + * vm_wait: (also see VM_WAIT macro) + * + * Sleep until free pages are available for allocation. + * - Called in various places after failed memory allocations. + */ void vm_wait(void) { @@ -2942,6 +3024,9 @@ vm_page_free_wakeup(int domain) vmd->vmd_pages_needed = false; wakeup(&vmd->vmd_free_count); } + if ((vmd->vmd_minset && !vm_paging_min(vmd)) || + (vmd->vmd_severeset && !vm_paging_severe(vmd))) + vm_domain_clear(domain); } /* Modified: user/jeff/numa/sys/vm/vm_pageout.h ============================================================================== --- user/jeff/numa/sys/vm/vm_pageout.h Fri Jan 19 20:33:47 2018 (r328171) +++ user/jeff/numa/sys/vm/vm_pageout.h Fri Jan 19 21:19:57 2018 (r328172) @@ -99,6 +99,9 @@ void pagedaemon_wakeup(int domain); #define VM_WAITPFAULT vm_waitpfault() void vm_wait(void); void vm_waitpfault(void); +void vm_wait_domain(int domain); +void vm_wait_min(void); +void vm_wait_severe(void); #ifdef _KERNEL int vm_pageout_flush(vm_page_t *, int, int, int, int *, boolean_t *); Modified: user/jeff/numa/sys/vm/vm_pagequeue.h ============================================================================== --- user/jeff/numa/sys/vm/vm_pagequeue.h Fri Jan 19 20:33:47 2018 (r328171) +++ user/jeff/numa/sys/vm/vm_pagequeue.h Fri Jan 19 21:19:57 2018 (r328172) @@ -92,6 +92,8 @@ struct vm_domain { int vmd_pageout_deficit; /* Estimated number of pages deficit */ bool vmd_pages_needed; /* Are threads waiting for free pages? */ bool vmd_pageout_wanted; /* pageout daemon wait channel */ + bool vmd_minset; /* Are we in vm_min_domains? */ + bool vmd_severeset; /* Are we in vm_severe_domains? */ int vmd_inactq_scans; enum { VM_LAUNDRY_IDLE = 0, @@ -107,7 +109,7 @@ struct vm_domain { u_int vmd_pageout_wakeup_thresh;/* (c) min pages to wake pagedaemon */ u_int vmd_interrupt_free_min; /* (c) reserved pages for int code */ u_int vmd_free_severe; /* (c) severe page depletion point */ -}; +} __aligned(CACHE_LINE_SIZE); extern struct vm_domain vm_dom[MAXMEMDOM]; @@ -141,14 +143,8 @@ vm_pagequeue_cnt_add(struct vm_pagequeue *pq, int adde #define vm_pagequeue_cnt_inc(pq) vm_pagequeue_cnt_add((pq), 1) #define vm_pagequeue_cnt_dec(pq) vm_pagequeue_cnt_add((pq), -1) -static inline u_int -vm_pagequeue_freecnt_adj(int domain, int adj) -{ +void vm_domain_set(int domain); - vm_pagequeue_free_assert_locked(domain); - return (vm_dom[domain].vmd_free_count += adj); -} - /* * vm_pagequeue_domain: * @@ -182,6 +178,9 @@ vm_paging_needed(struct vm_domain *vmd, u_int free_cou return (free_count < vmd->vmd_pageout_wakeup_thresh); } +/* + * Returns TRUE if the domain is below the min paging target. + */ static inline int vm_paging_min(struct vm_domain *vmd) { @@ -190,6 +189,16 @@ vm_paging_min(struct vm_domain *vmd) } /* + * Returns TRUE if the domain is below the severe paging target. + */ +static inline int +vm_paging_severe(struct vm_domain *vmd) +{ + + return (vmd->vmd_free_severe > vmd->vmd_free_count); +} + +/* * Return the number of pages we need to launder. * A positive number indicates that we have a shortfall of clean pages. */ @@ -199,6 +208,23 @@ vm_laundry_target(struct vm_domain *vmd) return (vm_paging_target(vmd)); } + +static inline u_int +vm_pagequeue_freecnt_adj(int domain, int adj) +{ + struct vm_domain *vmd; + u_int ret; + + vm_pagequeue_free_assert_locked(domain); + vmd = VM_DOMAIN(domain); + ret = vmd->vmd_free_count += adj; + if ((!vmd->vmd_minset && vm_paging_min(vmd)) || + (!vmd->vmd_severeset && vm_paging_severe(vmd))) + vm_domain_set(domain); + + return (ret); +} + #endif /* _KERNEL */ #endif /* !_VM_PAGEQUEUE_ */ Modified: user/jeff/numa/sys/vm/vm_swapout.c ============================================================================== --- user/jeff/numa/sys/vm/vm_swapout.c Fri Jan 19 20:33:47 2018 (r328171) +++ user/jeff/numa/sys/vm/vm_swapout.c Fri Jan 19 21:19:57 2018 (r328172) @@ -650,7 +650,7 @@ swapper(void) loop: if (vm_page_count_min()) { - VM_WAIT; + vm_wait_min(); goto loop; } From owner-svn-src-user@freebsd.org Fri Jan 19 21:56:23 2018 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D7D5FECACC3 for ; Fri, 19 Jan 2018 21:56:23 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id B1F6577C5F; Fri, 19 Jan 2018 21:56:23 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id E66B6133A5; Fri, 19 Jan 2018 21:56:22 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w0JLuMqO030827; Fri, 19 Jan 2018 21:56:22 GMT (envelope-from jeff@FreeBSD.org) Received: (from jeff@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w0JLuMh4030826; Fri, 19 Jan 2018 21:56:22 GMT (envelope-from jeff@FreeBSD.org) Message-Id: <201801192156.w0JLuMh4030826@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jeff set sender to jeff@FreeBSD.org using -f From: Jeff Roberson Date: Fri, 19 Jan 2018 21:56:22 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r328175 - user/jeff/numa/sys/vm X-SVN-Group: user X-SVN-Commit-Author: jeff X-SVN-Commit-Paths: user/jeff/numa/sys/vm X-SVN-Commit-Revision: 328175 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Jan 2018 21:56:23 -0000 Author: jeff Date: Fri Jan 19 21:56:22 2018 New Revision: 328175 URL: https://svnweb.freebsd.org/changeset/base/328175 Log: Implement the global vm_wait() and vm_waitpfault(). Document existing deficiencies in the design. Optimize out wakeups. Modified: user/jeff/numa/sys/vm/vm_page.c Modified: user/jeff/numa/sys/vm/vm_page.c ============================================================================== --- user/jeff/numa/sys/vm/vm_page.c Fri Jan 19 21:36:28 2018 (r328174) +++ user/jeff/numa/sys/vm/vm_page.c Fri Jan 19 21:56:22 2018 (r328175) @@ -137,6 +137,9 @@ struct mtx_padalign __exclusive_cache_line pa_lock[PA_ struct mtx_padalign __exclusive_cache_line vm_domainset_lock; domainset_t __exclusive_cache_line vm_min_domains; domainset_t __exclusive_cache_line vm_severe_domains; +static int vm_min_waiters; +static int vm_severe_waiters; +static int vm_pageproc_waiters; /* @@ -2707,14 +2710,18 @@ vm_domain_clear(int domain) if (vmd->vmd_minset && !vm_paging_min(vmd)) { vmd->vmd_minset = 0; DOMAINSET_CLR(domain, &vm_min_domains); - if (!vm_page_count_min()) + if (!vm_page_count_min() && vm_min_waiters) { + vm_min_waiters = 0; wakeup(&vm_min_domains); + } } if (vmd->vmd_severeset && !vm_paging_severe(vmd)) { vmd->vmd_severeset = 0; DOMAINSET_CLR(domain, &vm_severe_domains); - if (!vm_page_count_severe()) + if (!vm_page_count_severe() && vm_severe_waiters) { + vm_severe_waiters = 0; wakeup(&vm_severe_domains); + } } mtx_unlock(&vm_domainset_lock); } @@ -2727,8 +2734,10 @@ vm_wait_min(void) { mtx_lock(&vm_domainset_lock); - while (vm_page_count_min()) + while (vm_page_count_min()) { + vm_min_waiters++; msleep(&vm_min_domains, &vm_domainset_lock, PVM, "vmwait", 0); + } mtx_unlock(&vm_domainset_lock); } @@ -2740,8 +2749,10 @@ vm_wait_severe(void) { mtx_lock(&vm_domainset_lock); - while (vm_page_count_min()) + while (vm_page_count_min()) { + vm_severe_waiters++; msleep(&vm_min_domains, &vm_domainset_lock, PVM, "vmwait", 0); + } mtx_unlock(&vm_domainset_lock); } @@ -2779,12 +2790,28 @@ vm_wait_domain(int domain) void vm_wait(void) { -#if 0 /* XXX */ - mtx_lock(&vm_page_queue_free_mtx); - _vm_wait(); -#else - pause("vmxxx", 1); -#endif + + /* + * We use racey wakeup synchronization to avoid expensive global + * locking for the pageproc when sleeping with a non-specific vm_wait. + * To handle this, we only sleep for one tick in this instance. It + * is expected that most allocations for the pageproc will come from + * kmem or vm_page_grab* which will use the more specific and + * race-free vm_wait_domain(). + */ + if (curproc == pageproc) { + mtx_lock(&vm_domainset_lock); + vm_pageproc_waiters++; + msleep(&vm_pageproc_waiters, &vm_domainset_lock, PVM, + "pageprocwait", 1); + mtx_unlock(&vm_domainset_lock); + } else + /* + * XXX Ideally we would wait only until the allocation could + * be satisfied. This condition can cause new allocators to + * consume all freed pages while old allocators wait. + */ + vm_wait_min(); } /* @@ -2835,12 +2862,13 @@ vm_page_alloc_fail(vm_object_t object, int domain, int void vm_waitpfault(void) { -#if 0 /* XXX */ - mtx_lock(&vm_page_queue_free_mtx); - pagedaemon_wait(PUSER, "pfault"); -#else - pause("vmxxx", 1); -#endif + + mtx_lock(&vm_domainset_lock); + while (vm_page_count_min()) { + vm_min_waiters++; + msleep(&vm_min_domains, &vm_domainset_lock, PUSER, "pfault", 0); + } + mtx_unlock(&vm_domainset_lock); } struct vm_pagequeue * @@ -3027,6 +3055,13 @@ vm_page_free_wakeup(int domain) if ((vmd->vmd_minset && !vm_paging_min(vmd)) || (vmd->vmd_severeset && !vm_paging_severe(vmd))) vm_domain_clear(domain); + + /* See comments in vm_wait(); */ + if (vm_pageproc_waiters) { + vm_pageproc_waiters = 0; + wakeup(&vm_pageproc_waiters); + } + } /* From owner-svn-src-user@freebsd.org Fri Jan 19 22:54:06 2018 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 20198ECD89A for ; Fri, 19 Jan 2018 22:54:06 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C4F2D7ACA8; Fri, 19 Jan 2018 22:54:05 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0D0EE13D8A; Fri, 19 Jan 2018 22:54:05 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w0JMs4sA057307; Fri, 19 Jan 2018 22:54:04 GMT (envelope-from jeff@FreeBSD.org) Received: (from jeff@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w0JMs4aj057299; Fri, 19 Jan 2018 22:54:04 GMT (envelope-from jeff@FreeBSD.org) Message-Id: <201801192254.w0JMs4aj057299@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jeff set sender to jeff@FreeBSD.org using -f From: Jeff Roberson Date: Fri, 19 Jan 2018 22:54:04 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r328184 - user/jeff/numa/sys/vm X-SVN-Group: user X-SVN-Commit-Author: jeff X-SVN-Commit-Paths: user/jeff/numa/sys/vm X-SVN-Commit-Revision: 328184 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Jan 2018 22:54:06 -0000 Author: jeff Date: Fri Jan 19 22:54:04 2018 New Revision: 328184 URL: https://svnweb.freebsd.org/changeset/base/328184 Log: Refactor for clarity and to eliminate needless array lookups. Modified: user/jeff/numa/sys/vm/vm_page.c user/jeff/numa/sys/vm/vm_page.h user/jeff/numa/sys/vm/vm_pageout.c user/jeff/numa/sys/vm/vm_pagequeue.h user/jeff/numa/sys/vm/vm_phys.c user/jeff/numa/sys/vm/vm_reserv.c Modified: user/jeff/numa/sys/vm/vm_page.c ============================================================================== --- user/jeff/numa/sys/vm/vm_page.c Fri Jan 19 22:43:08 2018 (r328183) +++ user/jeff/numa/sys/vm/vm_page.c Fri Jan 19 22:54:04 2018 (r328184) @@ -172,7 +172,6 @@ static void vm_page_alloc_check(vm_page_t m); static void vm_page_clear_dirty_mask(vm_page_t m, vm_page_bits_t pagebits); static void vm_page_enqueue(uint8_t queue, vm_page_t m); static void vm_page_free_phys(vm_page_t m); -static void vm_page_free_wakeup(int domain); static void vm_page_init(void *dummy); static int vm_page_insert_after(vm_page_t m, vm_object_t object, vm_pindex_t pindex, vm_page_t mpred); @@ -180,7 +179,9 @@ static void vm_page_insert_radixdone(vm_page_t m, vm_o vm_page_t mpred); static int vm_page_reclaim_run(int req_class, int domain, u_long npages, vm_page_t m_run, vm_paddr_t high); -static int vm_page_alloc_fail(vm_object_t object, int domain, int req); +static void vm_domain_free_wakeup(struct vm_domain *); +static int vm_domain_alloc_fail(struct vm_domain *vmd, vm_object_t object, + int req); SYSINIT(vm_page, SI_SUB_VM, SI_ORDER_SECOND, vm_page_init, NULL); @@ -317,10 +318,11 @@ vm_page_blacklist_next(char **list, char *end) static void vm_page_blacklist_check(char *list, char *end) { + struct vm_domain *vmd; vm_paddr_t pa; vm_page_t m; char *next; - int ret, domain; + int ret; next = list; while (next != NULL) { @@ -329,10 +331,10 @@ vm_page_blacklist_check(char *list, char *end) m = vm_phys_paddr_to_vm_page(pa); if (m == NULL) continue; - domain = vm_phys_domain(m); - vm_pagequeue_free_lock(domain); + vmd = vm_pagequeue_domain(m); + vm_domain_free_lock(vmd); ret = vm_phys_unfree_page(m); - vm_pagequeue_free_unlock(domain); + vm_domain_free_unlock(vmd); if (ret == TRUE) { TAILQ_INSERT_TAIL(&blacklist_head, m, listq); if (bootverbose) @@ -395,11 +397,13 @@ sysctl_vm_page_blacklist(SYSCTL_HANDLER_ARGS) } static void -vm_page_domain_init(struct vm_domain *vmd) +vm_page_domain_init(int domain) { + struct vm_domain *vmd; struct vm_pagequeue *pq; int i; + vmd = VM_DOMAIN(domain); bzero(vmd, sizeof(*vmd)); *__DECONST(char **, &vmd->vmd_pagequeues[PQ_INACTIVE].pq_name) = "vm inactive pagequeue"; @@ -409,6 +413,7 @@ vm_page_domain_init(struct vm_domain *vmd) "vm laundry pagequeue"; *__DECONST(char **, &vmd->vmd_pagequeues[PQ_UNSWAPPABLE].pq_name) = "vm unswappable pagequeue"; + vmd->vmd_domain = domain; vmd->vmd_page_count = 0; vmd->vmd_free_count = 0; vmd->vmd_segs = 0; @@ -419,8 +424,7 @@ vm_page_domain_init(struct vm_domain *vmd) mtx_init(&pq->pq_mutex, pq->pq_name, "vm pagequeue", MTX_DEF | MTX_DUPOK); } - mtx_init(&vmd->vmd_pagequeue_free_mtx, "vm page free queue", NULL, - MTX_DEF); + mtx_init(&vmd->vmd_free_mtx, "vm page free queue", NULL, MTX_DEF); } /* @@ -457,7 +461,6 @@ vm_page_init_page(vm_page_t m, vm_paddr_t pa, int segi vm_offset_t vm_page_startup(vm_offset_t vaddr) { - struct vm_domain *vmd; struct vm_phys_seg *seg; vm_page_t m; char *list, *listend; @@ -492,7 +495,7 @@ vm_page_startup(vm_offset_t vaddr) for (i = 0; i < PA_LOCK_COUNT; i++) mtx_init(&pa_lock[i], "vm page", NULL, MTX_DEF); for (i = 0; i < vm_ndomains; i++) - vm_page_domain_init(VM_DOMAIN(i)); + vm_page_domain_init(i); /* * Almost all of the pages needed for bootstrapping UMA are used @@ -704,6 +707,8 @@ vm_page_startup(vm_offset_t vaddr) * or doesn't overlap any of them. */ for (i = 0; phys_avail[i + 1] != 0; i += 2) { + struct vm_domain *vmd; + if (seg->start < phys_avail[i] || seg->end > phys_avail[i + 1]) continue; @@ -711,10 +716,11 @@ vm_page_startup(vm_offset_t vaddr) m = seg->first_page; pagecount = (u_long)atop(seg->end - seg->start); - vm_pagequeue_free_lock(seg->domain); + vmd = VM_DOMAIN(seg->domain); + vm_domain_free_lock(vmd); vm_phys_free_contig(m, pagecount); - vm_pagequeue_freecnt_adj(seg->domain, (int)pagecount); - vm_pagequeue_free_unlock(seg->domain); + vm_domain_freecnt_adj(vmd, (int)pagecount); + vm_domain_free_unlock(vmd); vm_cnt.v_page_count += (u_int)pagecount; vmd = VM_DOMAIN(seg->domain);; @@ -1647,12 +1653,10 @@ vm_page_alloc_after(vm_object_t object, vm_pindex_t pi * for the request class and false otherwise. */ int -vm_page_available(int domain, int req, int npages) +vm_domain_available(struct vm_domain *vmd, int req, int npages) { - struct vm_domain *vmd; - vm_pagequeue_free_assert_locked(domain); - vmd = VM_DOMAIN(domain); + vm_domain_free_assert_locked(vmd); req = req & VM_ALLOC_CLASS_MASK; /* @@ -1675,6 +1679,7 @@ vm_page_t vm_page_alloc_domain_after(vm_object_t object, vm_pindex_t pindex, int domain, int req, vm_page_t mpred) { + struct vm_domain *vmd; vm_page_t m; int flags; u_int free_count; @@ -1705,11 +1710,13 @@ again: (m = vm_reserv_extend(req, object, pindex, domain, mpred)) != NULL) { domain = vm_phys_domain(m); + vmd = VM_DOMAIN(domain); goto found; } #endif - vm_pagequeue_free_lock(domain); - if (vm_page_available(domain, req, 1)) { + vmd = VM_DOMAIN(domain); + vm_domain_free_lock(vmd); + if (vm_domain_available(vmd, req, 1)) { /* * Can we allocate the page from a reservation? */ @@ -1737,7 +1744,7 @@ again: /* * Not allocatable, give up. */ - if (vm_page_alloc_fail(object, domain, req)) + if (vm_domain_alloc_fail(vmd, object, req)) goto again; return (NULL); } @@ -1746,15 +1753,15 @@ again: * At this point we had better have found a good page. */ KASSERT(m != NULL, ("missing page")); - free_count = vm_pagequeue_freecnt_adj(domain, -1); - vm_pagequeue_free_unlock(domain); + free_count = vm_domain_freecnt_adj(vmd, -1); + vm_domain_free_unlock(vmd); /* * Don't wakeup too often - wakeup the pageout daemon when * we would be nearly out of memory. */ - if (vm_paging_needed(VM_DOMAIN(domain), free_count)) - pagedaemon_wakeup(domain); + if (vm_paging_needed(vmd, free_count)) + pagedaemon_wakeup(vmd->vmd_domain); #if VM_NRESERVLEVEL > 0 found: #endif @@ -1924,12 +1931,14 @@ again: (m_ret = vm_reserv_extend_contig(req, object, pindex, domain, npages, low, high, alignment, boundary, mpred)) != NULL) { domain = vm_phys_domain(m_ret); + vmd = VM_DOMAIN(domain); goto found; } #endif m_ret = NULL; - vm_pagequeue_free_lock(domain); - if (vm_page_available(domain, req, npages)) { + vmd = VM_DOMAIN(domain); + vm_domain_free_lock(vmd); + if (vm_domain_available(vmd, req, npages)) { /* * Can we allocate the pages from a reservation? */ @@ -1951,12 +1960,12 @@ retry: #endif } if (m_ret == NULL) { - if (vm_page_alloc_fail(object, domain, req)) + if (vm_domain_alloc_fail(vmd, object, req)) goto again; return (NULL); } - vm_pagequeue_freecnt_adj(domain, -npages); - vm_pagequeue_free_unlock(domain); + vm_domain_freecnt_adj(vmd, -npages); + vm_domain_free_unlock(vmd); #if VM_NRESERVLEVEL > 0 found: #endif @@ -2089,24 +2098,26 @@ vm_page_alloc_freelist(int freelist, int req) vm_page_t vm_page_alloc_freelist_domain(int domain, int freelist, int req) { + struct vm_domain *vmd; vm_page_t m; u_int flags, free_count; /* * Do not allocate reserved pages unless the req has asked for it. */ + vmd = VM_DOMAIN(domain); again: - vm_pagequeue_free_lock(domain); - if (vm_page_available(domain, req, 1)) + vm_domain_free_lock(vmd); + if (vm_domain_available(vmd, req, 1)) m = vm_phys_alloc_freelist_pages(domain, freelist, VM_FREEPOOL_DIRECT, 0); if (m == NULL) { - if (vm_page_alloc_fail(NULL, domain, req)) + if (vm_domain_alloc_fail(vmd, NULL, req)) goto again; return (NULL); } - free_count = vm_pagequeue_freecnt_adj(domain, -1); - vm_pagequeue_free_unlock(domain); + free_count = vm_domain_freecnt_adj(vmd, -1); + vm_domain_free_unlock(vmd); vm_page_alloc_check(m); /* @@ -2127,7 +2138,7 @@ again: } /* Unmanaged pages don't use "act_count". */ m->oflags = VPO_UNMANAGED; - if (vm_paging_needed(VM_DOMAIN(domain), free_count)) + if (vm_paging_needed(vmd, free_count)) pagedaemon_wakeup(domain); return (m); } @@ -2353,6 +2364,7 @@ static int vm_page_reclaim_run(int req_class, int domain, u_long npages, vm_page_t m_run, vm_paddr_t high) { + struct vm_domain *vmd; struct mtx *m_mtx; struct spglist free; vm_object_t object; @@ -2503,7 +2515,8 @@ unlock: VM_OBJECT_WUNLOCK(object); } else { MPASS(vm_phys_domain(m) == domain); - vm_pagequeue_free_lock(domain); + vmd = VM_DOMAIN(domain); + vm_domain_free_lock(vmd); order = m->order; if (order < VM_NFREEORDER) { /* @@ -2520,7 +2533,7 @@ unlock: else if (vm_reserv_is_page_free(m)) order = 0; #endif - vm_pagequeue_free_unlock(domain); + vm_domain_free_unlock(vmd); if (order == VM_NFREEORDER) error = EINVAL; } @@ -2529,13 +2542,14 @@ unlock: mtx_unlock(m_mtx); if ((m = SLIST_FIRST(&free)) != NULL) { MPASS(vm_phys_domain(m) == domain); - vm_pagequeue_free_lock(domain); + vmd = VM_DOMAIN(domain); + vm_domain_free_lock(vmd); do { SLIST_REMOVE_HEAD(&free, plinks.s.ss); vm_page_free_phys(m); } while ((m = SLIST_FIRST(&free)) != NULL); - vm_page_free_wakeup(domain); - vm_pagequeue_free_unlock(domain); + vm_domain_free_wakeup(vmd); + vm_domain_free_unlock(vmd); } return (error); } @@ -2680,19 +2694,17 @@ vm_page_reclaim_contig(int req, u_long npages, vm_padd * Set the domain in the appropriate page level domainset. */ void -vm_domain_set(int domain) +vm_domain_set(struct vm_domain *vmd) { - struct vm_domain *vmd; - vmd = VM_DOMAIN(domain); mtx_lock(&vm_domainset_lock); if (!vmd->vmd_minset && vm_paging_min(vmd)) { vmd->vmd_minset = 1; - DOMAINSET_SET(domain, &vm_min_domains); + DOMAINSET_SET(vmd->vmd_domain, &vm_min_domains); } if (!vmd->vmd_severeset && vm_paging_severe(vmd)) { vmd->vmd_severeset = 1; - DOMAINSET_CLR(domain, &vm_severe_domains); + DOMAINSET_CLR(vmd->vmd_domain, &vm_severe_domains); } mtx_unlock(&vm_domainset_lock); } @@ -2701,15 +2713,13 @@ vm_domain_set(int domain) * Clear the domain from the appropriate page level domainset. */ static void -vm_domain_clear(int domain) +vm_domain_clear(struct vm_domain *vmd) { - struct vm_domain *vmd; - vmd = VM_DOMAIN(domain); mtx_lock(&vm_domainset_lock); if (vmd->vmd_minset && !vm_paging_min(vmd)) { vmd->vmd_minset = 0; - DOMAINSET_CLR(domain, &vm_min_domains); + DOMAINSET_CLR(vmd->vmd_domain, &vm_min_domains); if (!vm_page_count_min() && vm_min_waiters) { vm_min_waiters = 0; wakeup(&vm_min_domains); @@ -2717,7 +2727,7 @@ vm_domain_clear(int domain) } if (vmd->vmd_severeset && !vm_paging_severe(vmd)) { vmd->vmd_severeset = 0; - DOMAINSET_CLR(domain, &vm_severe_domains); + DOMAINSET_CLR(vmd->vmd_domain, &vm_severe_domains); if (!vm_page_count_severe() && vm_severe_waiters) { vm_severe_waiters = 0; wakeup(&vm_severe_domains); @@ -2767,13 +2777,13 @@ vm_wait_domain(int domain) { struct vm_domain *vmd; - vm_pagequeue_free_assert_locked(domain); vmd = VM_DOMAIN(domain); + vm_domain_free_assert_locked(vmd); if (curproc == pageproc) { vmd->vmd_pageout_pages_needed = 1; msleep(&vmd->vmd_pageout_pages_needed, - &vmd->vmd_pagequeue_free_mtx, PDROP | PSWP, "VMWait", 0); + vm_domain_free_lockptr(vmd), PDROP | PSWP, "VMWait", 0); } else { if (pageproc == NULL) panic("vm_wait in early boot"); @@ -2815,7 +2825,7 @@ vm_wait(void) } /* - * vm_page_alloc_fail: + * vm_domain_alloc_fail: * * Called when a page allocation function fails. Informs the * pagedaemon and performs the requested wait. Requires the @@ -2825,26 +2835,24 @@ vm_wait(void) * */ static int -vm_page_alloc_fail(vm_object_t object, int domain, int req) +vm_domain_alloc_fail(struct vm_domain *vmd, vm_object_t object, int req) { - struct vm_domain *vmd; - vm_pagequeue_free_assert_locked(domain); + vm_domain_free_assert_locked(vmd); - vmd = VM_DOMAIN(domain); atomic_add_int(&vmd->vmd_pageout_deficit, max((u_int)req >> VM_ALLOC_COUNT_SHIFT, 1)); if (req & (VM_ALLOC_WAITOK | VM_ALLOC_WAITFAIL)) { if (object != NULL) VM_OBJECT_WUNLOCK(object); - vm_wait_domain(domain); + vm_wait_domain(vmd->vmd_domain); if (object != NULL) VM_OBJECT_WLOCK(object); if (req & VM_ALLOC_WAITOK) return (EAGAIN); } else { - vm_pagequeue_free_unlock(domain); - pagedaemon_wakeup(domain); + vm_domain_free_unlock(vmd); + pagedaemon_wakeup(vmd->vmd_domain); } return (0); } @@ -3019,7 +3027,7 @@ vm_page_activate(vm_page_t m) } /* - * vm_page_free_wakeup: + * vm_domain_free_wakeup: * * Helper routine for vm_page_free_toq(). This routine is called * when a page is added to the free queues. @@ -3027,12 +3035,10 @@ vm_page_activate(vm_page_t m) * The page queues must be locked. */ static void -vm_page_free_wakeup(int domain) +vm_domain_free_wakeup(struct vm_domain *vmd) { - struct vm_domain *vmd; - vm_pagequeue_free_assert_locked(domain); - vmd = VM_DOMAIN(domain); + vm_domain_free_assert_locked(vmd); /* * if pageout daemon needs pages, then tell it that there are @@ -3054,7 +3060,7 @@ vm_page_free_wakeup(int domain) } if ((vmd->vmd_minset && !vm_paging_min(vmd)) || (vmd->vmd_severeset && !vm_paging_severe(vmd))) - vm_domain_clear(domain); + vm_domain_clear(vmd); /* See comments in vm_wait(); */ if (vm_pageproc_waiters) { @@ -3151,9 +3157,9 @@ static void vm_page_free_phys(vm_page_t m) { - vm_pagequeue_free_assert_locked(vm_phys_domain(m)); + vm_domain_free_assert_locked(vm_pagequeue_domain(m)); - vm_pagequeue_freecnt_adj(vm_phys_domain(m), 1); + vm_domain_freecnt_adj(vm_pagequeue_domain(m), 1); #if VM_NRESERVLEVEL > 0 if (!vm_reserv_free_page(m)) #endif @@ -3163,26 +3169,26 @@ vm_page_free_phys(vm_page_t m) void vm_page_free_phys_pglist(struct pglist *tq) { + struct vm_domain *vmd; vm_page_t m; - int domain; if (TAILQ_EMPTY(tq)) return; - domain = -1; + vmd = NULL; TAILQ_FOREACH(m, tq, listq) { - if (domain != vm_phys_domain(m)) { - if (domain != -1) { - vm_page_free_wakeup(domain); - vm_pagequeue_free_unlock(domain); + if (vmd != vm_pagequeue_domain(m)) { + if (vmd != NULL) { + vm_domain_free_wakeup(vmd); + vm_domain_free_unlock(vmd); } - domain = vm_phys_domain(m); - vm_pagequeue_free_lock(domain); + vmd = vm_pagequeue_domain(m); + vm_domain_free_lock(vmd); } vm_page_free_phys(m); } - if (domain != -1) { - vm_page_free_wakeup(domain); - vm_pagequeue_free_unlock(domain); + if (vmd != NULL) { + vm_domain_free_wakeup(vmd); + vm_domain_free_unlock(vmd); } } @@ -3198,15 +3204,15 @@ vm_page_free_phys_pglist(struct pglist *tq) void vm_page_free_toq(vm_page_t m) { - int domain; + struct vm_domain *vmd; if (!vm_page_free_prep(m, false)) return; - domain = vm_phys_domain(m); - vm_pagequeue_free_lock(domain); + vmd = vm_pagequeue_domain(m); + vm_domain_free_lock(vmd); vm_page_free_phys(m); - vm_page_free_wakeup(domain); - vm_pagequeue_free_unlock(domain); + vm_domain_free_wakeup(vmd); + vm_domain_free_unlock(vmd); } /* Modified: user/jeff/numa/sys/vm/vm_page.h ============================================================================== --- user/jeff/numa/sys/vm/vm_page.h Fri Jan 19 22:43:08 2018 (r328183) +++ user/jeff/numa/sys/vm/vm_page.h Fri Jan 19 22:54:04 2018 (r328184) @@ -432,7 +432,6 @@ void vm_page_free_zero(vm_page_t m); void vm_page_activate (vm_page_t); void vm_page_advise(vm_page_t m, int advice); -int vm_page_available(int domain, int req, int npages); vm_page_t vm_page_alloc(vm_object_t, vm_pindex_t, int); vm_page_t vm_page_alloc_domain(vm_object_t, vm_pindex_t, int, int); vm_page_t vm_page_alloc_after(vm_object_t, vm_pindex_t, int, vm_page_t); Modified: user/jeff/numa/sys/vm/vm_pageout.c ============================================================================== --- user/jeff/numa/sys/vm/vm_pageout.c Fri Jan 19 22:43:08 2018 (r328183) +++ user/jeff/numa/sys/vm/vm_pageout.c Fri Jan 19 22:54:04 2018 (r328184) @@ -1774,7 +1774,7 @@ vm_pageout_worker(void *arg) * The pageout daemon worker is never done, so loop forever. */ while (TRUE) { - mtx_lock(&vmd->vmd_pagequeue_free_mtx); + vm_domain_free_lock(vmd); /* * Generally, after a level >= 1 scan, if there are enough @@ -1815,7 +1815,7 @@ vm_pageout_worker(void *arg) * and scan again now. Otherwise, sleep a bit and * try again later. */ - mtx_unlock(&vmd->vmd_pagequeue_free_mtx); + vm_domain_free_unlock(vmd); if (pass >= 1) pause("pwait", hz / VM_INACT_SCAN_RATE); pass++; @@ -1827,11 +1827,11 @@ vm_pageout_worker(void *arg) * have their reference stats updated. */ if (vmd->vmd_pages_needed) { - mtx_unlock(&vmd->vmd_pagequeue_free_mtx); + vm_domain_free_unlock(vmd); if (pass == 0) pass++; } else if (mtx_sleep(&vmd->vmd_pageout_wanted, - &vmd->vmd_pagequeue_free_mtx, PDROP | PVM, + vm_domain_free_lockptr(vmd), PDROP | PVM, "psleep", hz) == 0) { VM_CNT_INC(v_pdwakeups); pass = 1; @@ -1973,8 +1973,8 @@ pagedaemon_wakeup(int domain) { struct vm_domain *vmd; - vm_pagequeue_free_assert_unlocked(domain); vmd = VM_DOMAIN(domain); + vm_domain_free_assert_unlocked(vmd); if (!vmd->vmd_pageout_wanted && curthread->td_proc != pageproc) { vmd->vmd_pageout_wanted = true; @@ -1992,8 +1992,8 @@ pagedaemon_wait(int domain, int pri, const char *wmesg { struct vm_domain *vmd; - vm_pagequeue_free_assert_locked(domain); vmd = VM_DOMAIN(domain); + vm_domain_free_assert_locked(vmd); /* * vmd_pageout_wanted may have been set by an advisory wakeup, but if @@ -2006,6 +2006,6 @@ pagedaemon_wait(int domain, int pri, const char *wmesg wakeup(&vmd->vmd_pageout_wanted); } vmd->vmd_pages_needed = true; - msleep(&vmd->vmd_free_count, &vmd->vmd_pagequeue_free_mtx, PDROP | pri, + msleep(&vmd->vmd_free_count, vm_domain_free_lockptr(vmd), PDROP | pri, wmesg, 0); } Modified: user/jeff/numa/sys/vm/vm_pagequeue.h ============================================================================== --- user/jeff/numa/sys/vm/vm_pagequeue.h Fri Jan 19 22:43:08 2018 (r328183) +++ user/jeff/numa/sys/vm/vm_pagequeue.h Fri Jan 19 22:54:04 2018 (r328184) @@ -76,11 +76,14 @@ struct vm_pagequeue { struct vm_domain { struct vm_pagequeue vmd_pagequeues[PQ_COUNT]; - struct mtx_padalign vmd_pagequeue_free_mtx; + struct mtx_padalign vmd_free_mtx; struct vmem *vmd_kernel_arena; + u_int vmd_domain; /* Domain number. */ u_int vmd_page_count; + long vmd_segs; /* bitmask of the segments */ + + /* Paging control variables, locked by domain_free_mtx. */ u_int vmd_free_count; - long vmd_segs; /* bitmask of the segments */ boolean_t vmd_oom; int vmd_oom_seq; int vmd_last_active_scan; @@ -101,6 +104,7 @@ struct vm_domain { VM_LAUNDRY_SHORTFALL } vmd_laundry_request; + /* Paging thresholds. */ u_int vmd_free_reserved; /* (c) pages reserved for deadlock */ u_int vmd_free_target; /* (c) pages desired free */ u_int vmd_free_min; /* (c) pages desired free */ @@ -120,16 +124,16 @@ extern struct vm_domain vm_dom[MAXMEMDOM]; #define vm_pagequeue_lockptr(pq) (&(pq)->pq_mutex) #define vm_pagequeue_unlock(pq) mtx_unlock(&(pq)->pq_mutex) -#define vm_pagequeue_free_assert_locked(n) \ - mtx_assert(vm_pagequeue_free_lockptr((n)), MA_OWNED) -#define vm_pagequeue_free_assert_unlocked(n) \ - mtx_assert(vm_pagequeue_free_lockptr((n)), MA_NOTOWNED) -#define vm_pagequeue_free_lock(n) \ - mtx_lock(vm_pagequeue_free_lockptr((n))) -#define vm_pagequeue_free_lockptr(n) \ - (&VM_DOMAIN((n))->vmd_pagequeue_free_mtx) -#define vm_pagequeue_free_unlock(n) \ - mtx_unlock(vm_pagequeue_free_lockptr((n))) +#define vm_domain_free_assert_locked(n) \ + mtx_assert(vm_domain_free_lockptr((n)), MA_OWNED) +#define vm_domain_free_assert_unlocked(n) \ + mtx_assert(vm_domain_free_lockptr((n)), MA_NOTOWNED) +#define vm_domain_free_lock(d) \ + mtx_lock(vm_domain_free_lockptr((d))) +#define vm_domain_free_lockptr(d) \ + (&(d)->vmd_free_mtx) +#define vm_domain_free_unlock(d) \ + mtx_unlock(vm_domain_free_lockptr((d))) static __inline void vm_pagequeue_cnt_add(struct vm_pagequeue *pq, int addend) @@ -143,7 +147,8 @@ vm_pagequeue_cnt_add(struct vm_pagequeue *pq, int adde #define vm_pagequeue_cnt_inc(pq) vm_pagequeue_cnt_add((pq), 1) #define vm_pagequeue_cnt_dec(pq) vm_pagequeue_cnt_add((pq), -1) -void vm_domain_set(int domain); +void vm_domain_set(struct vm_domain *vmd); +int vm_domain_available(struct vm_domain *vmd, int req, int npages); /* * vm_pagequeue_domain: @@ -210,17 +215,15 @@ vm_laundry_target(struct vm_domain *vmd) } static inline u_int -vm_pagequeue_freecnt_adj(int domain, int adj) +vm_domain_freecnt_adj(struct vm_domain *vmd, int adj) { - struct vm_domain *vmd; u_int ret; - vm_pagequeue_free_assert_locked(domain); - vmd = VM_DOMAIN(domain); + vm_domain_free_assert_locked(vmd); ret = vmd->vmd_free_count += adj; - if ((!vmd->vmd_minset && vm_paging_min(vmd)) || - (!vmd->vmd_severeset && vm_paging_severe(vmd))) - vm_domain_set(domain); + if ((!vmd->vmd_minset && vm_paging_min(vmd)) || + (!vmd->vmd_severeset && vm_paging_severe(vmd))) + vm_domain_set(vmd); return (ret); } Modified: user/jeff/numa/sys/vm/vm_phys.c ============================================================================== --- user/jeff/numa/sys/vm/vm_phys.c Fri Jan 19 22:43:08 2018 (r328183) +++ user/jeff/numa/sys/vm/vm_phys.c Fri Jan 19 22:54:04 2018 (r328184) @@ -654,7 +654,7 @@ vm_phys_alloc_freelist_pages(int domain, int freelist, if (flind < 0) return (NULL); - vm_pagequeue_free_assert_locked(domain); + vm_domain_free_assert_locked(VM_DOMAIN(domain)); fl = &vm_phys_free_queues[domain][flind][pool][0]; for (oind = order; oind < VM_NFREEORDER; oind++) { m = TAILQ_FIRST(&fl[oind].pl); @@ -908,7 +908,7 @@ vm_phys_free_pages(vm_page_t m, int order) KASSERT(order < VM_NFREEORDER, ("vm_phys_free_pages: order %d is out of range", order)); seg = &vm_phys_segs[m->segind]; - vm_pagequeue_free_assert_locked(seg->domain); + vm_domain_free_assert_locked(VM_DOMAIN(seg->domain)); if (order < VM_NFREEORDER - 1) { pa = VM_PAGE_TO_PHYS(m); do { @@ -946,7 +946,7 @@ vm_phys_free_contig(vm_page_t m, u_long npages) * Avoid unnecessary coalescing by freeing the pages in the largest * possible power-of-two-sized subsets. */ - vm_pagequeue_free_assert_locked(vm_phys_domain(m)); + vm_domain_free_assert_locked(vm_pagequeue_domain(m)); for (;; npages -= n) { /* * Unsigned "min" is used here so that "order" is assigned @@ -1058,7 +1058,7 @@ vm_phys_unfree_page(vm_page_t m) * assign it to "m_set". */ seg = &vm_phys_segs[m->segind]; - vm_pagequeue_free_assert_locked(seg->domain); + vm_domain_free_assert_locked(VM_DOMAIN(seg->domain)); for (m_set = m, order = 0; m_set->order == VM_NFREEORDER && order < VM_NFREEORDER - 1; ) { order++; @@ -1122,7 +1122,7 @@ vm_phys_alloc_contig(int domain, u_long npages, vm_pad KASSERT(npages > 0, ("npages is 0")); KASSERT(powerof2(alignment), ("alignment is not a power of 2")); KASSERT(powerof2(boundary), ("boundary is not a power of 2")); - vm_pagequeue_free_assert_locked(domain); + vm_domain_free_assert_locked(VM_DOMAIN(domain)); if (low >= high) return (NULL); m_run = NULL; @@ -1167,7 +1167,7 @@ vm_phys_alloc_seg_contig(struct vm_phys_seg *seg, u_lo KASSERT(npages > 0, ("npages is 0")); KASSERT(powerof2(alignment), ("alignment is not a power of 2")); KASSERT(powerof2(boundary), ("boundary is not a power of 2")); - vm_pagequeue_free_assert_locked(seg->domain); + vm_domain_free_assert_locked(VM_DOMAIN(seg->domain)); /* Compute the queue that is the best fit for npages. */ for (order = 0; (1 << order) < npages; order++); /* Search for a run satisfying the specified conditions. */ Modified: user/jeff/numa/sys/vm/vm_reserv.c ============================================================================== --- user/jeff/numa/sys/vm/vm_reserv.c Fri Jan 19 22:43:08 2018 (r328183) +++ user/jeff/numa/sys/vm/vm_reserv.c Fri Jan 19 22:54:04 2018 (r328184) @@ -166,7 +166,7 @@ popmap_is_set(popmap_t popmap[], int i) * * A partially populated reservation can be broken and reclaimed at any time. * - * f - vm_pagequeue_free_lock + * f - vm_domain_free_lock * o - vm_reserv_object_lock * c - constant after boot */ @@ -313,12 +313,12 @@ sysctl_vm_reserv_partpopq(SYSCTL_HANDLER_ARGS) for (level = -1; level <= VM_NRESERVLEVEL - 2; level++) { counter = 0; unused_pages = 0; - vm_pagequeue_free_lock(domain); + vm_domain_free_lock(VM_DOMAIN(domain)); TAILQ_FOREACH(rv, &vm_rvq_partpop[domain], partpopq) { counter++; unused_pages += VM_LEVEL_0_NPAGES - rv->popcnt; } - vm_pagequeue_free_unlock(domain); + vm_domain_free_unlock(VM_DOMAIN(domain)); sbuf_printf(&sbuf, "%6d, %7d, %6dK, %6d\n", domain, level, unused_pages * ((int)PAGE_SIZE / 1024), counter); @@ -384,7 +384,7 @@ static void vm_reserv_depopulate(vm_reserv_t rv, int index) { - vm_pagequeue_free_assert_locked(rv->domain); + vm_domain_free_assert_locked(VM_DOMAIN(rv->domain)); KASSERT(rv->object != NULL, ("vm_reserv_depopulate: reserv %p is free", rv)); KASSERT(popmap_is_set(rv->popmap, index), @@ -484,7 +484,7 @@ static void vm_reserv_populate(vm_reserv_t rv, int index) { - vm_pagequeue_free_assert_locked(rv->domain); + vm_domain_free_assert_locked(VM_DOMAIN(rv->domain)); KASSERT(rv->object != NULL, ("vm_reserv_populate: reserv %p is free", rv)); KASSERT(popmap_is_clear(rv->popmap, index), @@ -530,6 +530,7 @@ vm_reserv_extend_contig(int req, vm_object_t object, v int domain, u_long npages, vm_paddr_t low, vm_paddr_t high, u_long alignment, vm_paddr_t boundary, vm_page_t mpred) { + struct vm_domain *vmd; vm_paddr_t pa, size; vm_page_t m, msucc; vm_reserv_t rv; @@ -575,8 +576,9 @@ vm_reserv_extend_contig(int req, vm_object_t object, v if (index + npages > VM_LEVEL_0_NPAGES) return (NULL); domain = rv->domain; - vm_pagequeue_free_lock(domain); - if (rv->object != object || !vm_page_available(domain, req, npages)) { + vmd = VM_DOMAIN(domain); + vm_domain_free_lock(vmd); + if (rv->object != object || !vm_domain_available(vmd, req, npages)) { m = NULL; goto out; } @@ -596,9 +598,9 @@ vm_reserv_extend_contig(int req, vm_object_t object, v } for (i = 0; i < npages; i++) vm_reserv_populate(rv, index + i); - vm_pagequeue_freecnt_adj(domain, -npages); + vm_domain_freecnt_adj(vmd, -npages); out: - vm_pagequeue_free_unlock(domain); + vm_domain_free_unlock(vmd); return (m); } @@ -629,7 +631,7 @@ vm_reserv_alloc_contig(vm_object_t object, vm_pindex_t u_long allocpages, maxpages, minpages; int i, index, n; - vm_pagequeue_free_assert_locked(domain); + vm_domain_free_assert_locked(VM_DOMAIN(domain)); VM_OBJECT_ASSERT_WLOCKED(object); KASSERT(npages != 0, ("vm_reserv_alloc_contig: npages is 0")); @@ -786,6 +788,7 @@ vm_page_t vm_reserv_extend(int req, vm_object_t object, vm_pindex_t pindex, int domain, vm_page_t mpred) { + struct vm_domain *vmd; vm_page_t m, msucc; vm_reserv_t rv; int index, free_count; @@ -809,10 +812,11 @@ vm_reserv_extend(int req, vm_object_t object, vm_pinde KASSERT(object != kernel_object || rv->domain == domain, ("vm_reserv_extend: Domain mismatch from reservation.")); domain = rv->domain; + vmd = VM_DOMAIN(domain); index = VM_RESERV_INDEX(object, pindex); m = &rv->pages[index]; - vm_pagequeue_free_lock(domain); - if (vm_page_available(domain, req, 1) == 0 || + vm_domain_free_lock(vmd); + if (vm_domain_available(vmd, req, 1) == 0 || /* Handle reclaim race. */ rv->object != object || /* Handle vm_page_rename(m, new_object, ...). */ @@ -820,10 +824,10 @@ vm_reserv_extend(int req, vm_object_t object, vm_pinde m = NULL; if (m != NULL) vm_reserv_populate(rv, index); - free_count = vm_pagequeue_freecnt_adj(domain, -1); - vm_pagequeue_free_unlock(domain); + free_count = vm_domain_freecnt_adj(vmd, -1); + vm_domain_free_unlock(vmd); - if (vm_paging_needed(VM_DOMAIN(domain), free_count)) + if (vm_paging_needed(vmd, free_count)) pagedaemon_wakeup(domain); return (m); @@ -846,7 +850,7 @@ vm_reserv_alloc_page(vm_object_t object, vm_pindex_t p vm_reserv_t rv; int index; - vm_pagequeue_free_assert_locked(domain); + vm_domain_free_assert_locked(VM_DOMAIN(domain)); VM_OBJECT_ASSERT_WLOCKED(object); /* @@ -941,7 +945,7 @@ vm_reserv_break(vm_reserv_t rv, vm_page_t m) { int begin_zeroes, hi, i, lo; - vm_pagequeue_free_assert_locked(rv->domain); + vm_domain_free_assert_locked(VM_DOMAIN(rv->domain)); vm_reserv_remove(rv); if (m != NULL) { /* @@ -1006,7 +1010,7 @@ void vm_reserv_break_all(vm_object_t object) { vm_reserv_t rv; - int domain = -1; + struct vm_domain *vmd; /* * This access of object->rvq is unsynchronized so that the @@ -1015,12 +1019,13 @@ vm_reserv_break_all(vm_object_t object) * lock prevents new additions, so we are guaranteed that when * it returns NULL the object is properly empty. */ + vmd = NULL; while ((rv = LIST_FIRST(&object->rvq)) != NULL) { - if (domain != rv->domain) { - if (domain != -1) - vm_pagequeue_free_unlock(domain); - domain = rv->domain; - vm_pagequeue_free_lock(domain); + if (vmd != VM_DOMAIN(rv->domain)) { + if (vmd != NULL) + vm_domain_free_unlock(vmd); + vmd = VM_DOMAIN(rv->domain); + vm_domain_free_lock(vmd); } /* Reclaim race. */ if (rv->object != object) @@ -1033,8 +1038,8 @@ vm_reserv_break_all(vm_object_t object) } vm_reserv_break(rv, NULL); } - if (domain != -1) - vm_pagequeue_free_unlock(domain); + if (vmd != NULL) + vm_domain_free_unlock(vmd); } /* @@ -1049,7 +1054,7 @@ vm_reserv_free_page(vm_page_t m) vm_reserv_t rv; rv = vm_reserv_from_page(m); - vm_pagequeue_free_assert_locked(rv->domain); + vm_domain_free_assert_locked(VM_DOMAIN(rv->domain)); if (rv->object == NULL) return (FALSE); vm_reserv_depopulate(rv, m - rv->pages); @@ -1098,7 +1103,7 @@ vm_reserv_is_page_free(vm_page_t m) vm_reserv_t rv; rv = vm_reserv_from_page(m); - vm_pagequeue_free_assert_locked(rv->domain); + vm_domain_free_assert_locked(VM_DOMAIN(rv->domain)); if (rv->object == NULL) return (false); return (popmap_is_clear(rv->popmap, m - rv->pages)); @@ -1140,7 +1145,7 @@ static void vm_reserv_reclaim(vm_reserv_t rv) { - vm_pagequeue_free_assert_locked(rv->domain); + vm_domain_free_assert_locked(VM_DOMAIN(rv->domain)); KASSERT(rv->inpartpopq, ("vm_reserv_reclaim: reserv %p's inpartpopq is FALSE", rv)); KASSERT(rv->domain >= 0 && rv->domain < vm_ndomains, @@ -1164,7 +1169,7 @@ vm_reserv_reclaim_inactive(int domain) { vm_reserv_t rv; - vm_pagequeue_free_assert_locked(domain); + vm_domain_free_assert_locked(VM_DOMAIN(domain)); if ((rv = TAILQ_FIRST(&vm_rvq_partpop[domain])) != NULL) { vm_reserv_reclaim(rv); return (TRUE); @@ -1188,7 +1193,7 @@ vm_reserv_reclaim_contig(int domain, u_long npages, vm vm_reserv_t rv; int hi, i, lo, low_index, next_free; - vm_pagequeue_free_assert_locked(domain); + vm_domain_free_assert_locked(VM_DOMAIN(domain)); if (npages > VM_LEVEL_0_NPAGES - 1) return (FALSE); size = npages << PAGE_SHIFT; @@ -1279,7 +1284,7 @@ vm_reserv_rename(vm_page_t m, vm_object_t new_object, VM_OBJECT_ASSERT_WLOCKED(new_object); rv = vm_reserv_from_page(m); if (rv->object == old_object) { - vm_pagequeue_free_lock(rv->domain); + vm_domain_free_lock(VM_DOMAIN(rv->domain)); if (rv->object == old_object) { vm_reserv_object_lock(old_object); rv->object = NULL; @@ -1291,7 +1296,7 @@ vm_reserv_rename(vm_page_t m, vm_object_t new_object, LIST_INSERT_HEAD(&new_object->rvq, rv, objq); vm_reserv_object_unlock(new_object); } - vm_pagequeue_free_unlock(rv->domain); + vm_domain_free_unlock(VM_DOMAIN(rv->domain)); } } From owner-svn-src-user@freebsd.org Fri Jan 19 22:59:25 2018 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id B23EFECDC0A for ; Fri, 19 Jan 2018 22:59:25 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 564B27B047; Fri, 19 Jan 2018 22:59:25 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A588213D96; Fri, 19 Jan 2018 22:59:24 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w0JMxOG0058459; Fri, 19 Jan 2018 22:59:24 GMT (envelope-from jeff@FreeBSD.org) Received: (from jeff@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w0JMxNHG058445; Fri, 19 Jan 2018 22:59:23 GMT (envelope-from jeff@FreeBSD.org) Message-Id: <201801192259.w0JMxNHG058445@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jeff set sender to jeff@FreeBSD.org using -f From: Jeff Roberson Date: Fri, 19 Jan 2018 22:59:23 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r328185 - in user/jeff/numa: . bin/ls contrib/bsnmp/snmpd contrib/llvm/lib/Analysis contrib/llvm/lib/Target/X86 contrib/llvm/lib/Target/X86/AsmParser contrib/llvm/lib/Transforms/Vectori... X-SVN-Group: user X-SVN-Commit-Author: jeff X-SVN-Commit-Paths: in user/jeff/numa: . bin/ls contrib/bsnmp/snmpd contrib/llvm/lib/Analysis contrib/llvm/lib/Target/X86 contrib/llvm/lib/Target/X86/AsmParser contrib/llvm/lib/Transforms/Vectorize contrib/llvm/tools/lld... X-SVN-Commit-Revision: 328185 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 19 Jan 2018 22:59:25 -0000 Author: jeff Date: Fri Jan 19 22:59:22 2018 New Revision: 328185 URL: https://svnweb.freebsd.org/changeset/base/328185 Log: Merge from head. Added: user/jeff/numa/lib/libsysdecode/sysdecode_cmsg_type.3 - copied unchanged from r328184, head/lib/libsysdecode/sysdecode_cmsg_type.3 user/jeff/numa/sys/contrib/libfdt/fdt_addresses.c - copied unchanged from r328184, head/sys/contrib/libfdt/fdt_addresses.c user/jeff/numa/sys/contrib/libfdt/fdt_overlay.c - copied unchanged from r328184, head/sys/contrib/libfdt/fdt_overlay.c user/jeff/numa/sys/crypto/ccp/ - copied from r328184, head/sys/crypto/ccp/ user/jeff/numa/sys/modules/ccp/ - copied from r328184, head/sys/modules/ccp/ Deleted: user/jeff/numa/contrib/tzdata/pacificnew user/jeff/numa/stand/efi/loader/arch/i386/bootinfo.c user/jeff/numa/stand/fdt/fdt_overlay.c user/jeff/numa/stand/fdt/fdt_overlay.h Modified: user/jeff/numa/Makefile.inc1 user/jeff/numa/Makefile.libcompat user/jeff/numa/bin/ls/Makefile user/jeff/numa/bin/ls/Makefile.depend user/jeff/numa/bin/ls/extern.h user/jeff/numa/bin/ls/ls.1 user/jeff/numa/bin/ls/ls.c user/jeff/numa/bin/ls/ls.h user/jeff/numa/bin/ls/print.c user/jeff/numa/bin/ls/util.c user/jeff/numa/contrib/bsnmp/snmpd/BEGEMOT-SNMPD.txt user/jeff/numa/contrib/bsnmp/snmpd/action.c user/jeff/numa/contrib/bsnmp/snmpd/main.c user/jeff/numa/contrib/bsnmp/snmpd/snmpd.config user/jeff/numa/contrib/bsnmp/snmpd/snmpmod.h user/jeff/numa/contrib/bsnmp/snmpd/tree.def user/jeff/numa/contrib/llvm/lib/Analysis/ValueTracking.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/AsmParser/X86AsmParser.cpp user/jeff/numa/contrib/llvm/lib/Target/X86/X86TargetTransformInfo.cpp user/jeff/numa/contrib/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp user/jeff/numa/contrib/llvm/tools/lld/ELF/LinkerScript.cpp user/jeff/numa/contrib/llvm/tools/lld/ELF/OutputSections.h user/jeff/numa/contrib/llvm/tools/lld/ELF/ScriptParser.cpp user/jeff/numa/contrib/tzdata/Makefile user/jeff/numa/contrib/tzdata/NEWS user/jeff/numa/contrib/tzdata/README user/jeff/numa/contrib/tzdata/africa user/jeff/numa/contrib/tzdata/asia user/jeff/numa/contrib/tzdata/australasia user/jeff/numa/contrib/tzdata/backzone user/jeff/numa/contrib/tzdata/europe user/jeff/numa/contrib/tzdata/northamerica user/jeff/numa/contrib/tzdata/southamerica user/jeff/numa/contrib/tzdata/theory.html user/jeff/numa/contrib/tzdata/version user/jeff/numa/contrib/tzdata/zishrink.awk user/jeff/numa/contrib/tzdata/zone.tab user/jeff/numa/contrib/tzdata/zone1970.tab user/jeff/numa/etc/defaults/rc.conf user/jeff/numa/etc/mtree/BSD.root.dist user/jeff/numa/etc/rc.d/resolv user/jeff/numa/gnu/usr.bin/gdb/kgdb/trgt_amd64.c user/jeff/numa/lib/clang/freebsd_cc_version.h user/jeff/numa/lib/libnetbsd/util.h user/jeff/numa/lib/libpmc/pmclog.c user/jeff/numa/lib/libpmcstat/libpmcstat_logging.c user/jeff/numa/lib/libsysdecode/Makefile user/jeff/numa/lib/libsysdecode/flags.c user/jeff/numa/lib/libsysdecode/mktables user/jeff/numa/lib/libsysdecode/sysdecode.3 user/jeff/numa/lib/libsysdecode/sysdecode.h user/jeff/numa/lib/libsysdecode/sysdecode_mask.3 user/jeff/numa/lib/libufs/Makefile user/jeff/numa/lib/libufs/cgread.3 user/jeff/numa/lib/libufs/cgroup.c user/jeff/numa/lib/libufs/libufs.3 user/jeff/numa/lib/libufs/libufs.h user/jeff/numa/sbin/camcontrol/camcontrol.c user/jeff/numa/sbin/fsck_ffs/fsck.h user/jeff/numa/sbin/fsck_ffs/fsck_ffs.8 user/jeff/numa/sbin/fsck_ffs/fsutil.c user/jeff/numa/sbin/fsck_ffs/gjournal.c user/jeff/numa/sbin/fsck_ffs/inode.c user/jeff/numa/sbin/fsck_ffs/main.c user/jeff/numa/sbin/fsck_ffs/pass1.c user/jeff/numa/sbin/fsck_ffs/pass5.c user/jeff/numa/sbin/fsck_ffs/suj.c user/jeff/numa/sbin/fsdb/fsdb.c user/jeff/numa/sbin/geom/class/nop/geom_nop.c user/jeff/numa/sbin/geom/class/nop/gnop.8 user/jeff/numa/share/man/man4/Makefile user/jeff/numa/share/man/man4/wsp.4 user/jeff/numa/share/man/man7/hier.7 user/jeff/numa/share/man/man9/bhnd.9 user/jeff/numa/share/man/man9/style.9 user/jeff/numa/share/misc/pci_vendors user/jeff/numa/stand/arm/loader/loader.conf user/jeff/numa/stand/arm/uboot/ldscript.arm user/jeff/numa/stand/common/load_elf_obj.c user/jeff/numa/stand/efi/boot1/boot1.c user/jeff/numa/stand/efi/libefi/efichar.c user/jeff/numa/stand/efi/loader/arch/arm/ldscript.arm user/jeff/numa/stand/fdt/Makefile user/jeff/numa/stand/fdt/fdt_loader_cmd.c user/jeff/numa/stand/forth/loader.conf user/jeff/numa/stand/mips/uboot/loader.conf user/jeff/numa/sys/amd64/amd64/apic_vector.S user/jeff/numa/sys/amd64/amd64/atpic_vector.S user/jeff/numa/sys/amd64/amd64/bpf_jit_machdep.c user/jeff/numa/sys/amd64/amd64/cpu_switch.S user/jeff/numa/sys/amd64/amd64/db_trace.c user/jeff/numa/sys/amd64/amd64/exception.S user/jeff/numa/sys/amd64/amd64/genassym.c user/jeff/numa/sys/amd64/amd64/machdep.c user/jeff/numa/sys/amd64/amd64/mp_machdep.c user/jeff/numa/sys/amd64/amd64/pmap.c user/jeff/numa/sys/amd64/amd64/sys_machdep.c user/jeff/numa/sys/amd64/amd64/trap.c user/jeff/numa/sys/amd64/amd64/vm_machdep.c user/jeff/numa/sys/amd64/ia32/ia32_exception.S user/jeff/numa/sys/amd64/ia32/ia32_syscall.c user/jeff/numa/sys/amd64/include/asmacros.h user/jeff/numa/sys/amd64/include/frame.h user/jeff/numa/sys/amd64/include/intr_machdep.h user/jeff/numa/sys/amd64/include/md_var.h user/jeff/numa/sys/amd64/include/pcb.h user/jeff/numa/sys/amd64/include/pcpu.h user/jeff/numa/sys/amd64/include/pmap.h user/jeff/numa/sys/amd64/include/proc.h user/jeff/numa/sys/amd64/include/smp.h user/jeff/numa/sys/amd64/include/vmm.h user/jeff/numa/sys/amd64/include/vmparam.h user/jeff/numa/sys/amd64/vmm/amd/svm.c user/jeff/numa/sys/amd64/vmm/amd/svm.h user/jeff/numa/sys/amd64/vmm/amd/svm_support.S user/jeff/numa/sys/amd64/vmm/amd/vmcb.c user/jeff/numa/sys/amd64/vmm/intel/vmx.c user/jeff/numa/sys/amd64/vmm/intel/vmx.h user/jeff/numa/sys/amd64/vmm/intel/vmx_support.S user/jeff/numa/sys/amd64/vmm/vmm.c user/jeff/numa/sys/arm/include/vmparam.h user/jeff/numa/sys/arm/xscale/ixp425/if_npe.c user/jeff/numa/sys/arm64/arm64/busdma_bounce.c user/jeff/numa/sys/arm64/arm64/machdep.c user/jeff/numa/sys/arm64/arm64/pmap.c user/jeff/numa/sys/arm64/include/vmparam.h user/jeff/numa/sys/cam/cam_ccb.h user/jeff/numa/sys/cam/cam_iosched.c user/jeff/numa/sys/cam/cam_iosched.h user/jeff/numa/sys/cam/cam_queue.c user/jeff/numa/sys/cam/cam_xpt.c user/jeff/numa/sys/cam/ctl/ctl_frontend.c user/jeff/numa/sys/cam/ctl/ctl_ha.c user/jeff/numa/sys/cam/ctl/ctl_tpc.c user/jeff/numa/sys/cam/ctl/ctl_tpc.h user/jeff/numa/sys/cam/ctl/ctl_tpc_local.c user/jeff/numa/sys/cam/mmc/mmc.h user/jeff/numa/sys/cam/mmc/mmc_all.h user/jeff/numa/sys/cam/mmc/mmc_da.c user/jeff/numa/sys/cam/mmc/mmc_xpt.c user/jeff/numa/sys/cam/nvme/nvme_all.c user/jeff/numa/sys/cam/nvme/nvme_all.h user/jeff/numa/sys/cam/nvme/nvme_da.c user/jeff/numa/sys/cam/nvme/nvme_xpt.c user/jeff/numa/sys/cam/scsi/scsi_all.c user/jeff/numa/sys/cam/scsi/scsi_ch.c user/jeff/numa/sys/cam/scsi/scsi_da.c user/jeff/numa/sys/cam/scsi/scsi_enc.h user/jeff/numa/sys/cam/scsi/scsi_ses.h user/jeff/numa/sys/compat/linuxkpi/common/src/linux_page.c user/jeff/numa/sys/compat/ndis/subr_ndis.c user/jeff/numa/sys/conf/kern.post.mk user/jeff/numa/sys/conf/kmod.mk user/jeff/numa/sys/conf/options.powerpc user/jeff/numa/sys/contrib/libfdt/fdt.c user/jeff/numa/sys/contrib/libfdt/fdt.h user/jeff/numa/sys/contrib/libfdt/fdt_empty_tree.c user/jeff/numa/sys/contrib/libfdt/fdt_ro.c user/jeff/numa/sys/contrib/libfdt/fdt_rw.c user/jeff/numa/sys/contrib/libfdt/fdt_strerror.c user/jeff/numa/sys/contrib/libfdt/fdt_sw.c user/jeff/numa/sys/contrib/libfdt/fdt_wip.c user/jeff/numa/sys/contrib/libfdt/libfdt.h user/jeff/numa/sys/contrib/libfdt/libfdt_env.h user/jeff/numa/sys/contrib/libfdt/libfdt_internal.h user/jeff/numa/sys/contrib/libnv/nv_impl.h user/jeff/numa/sys/crypto/via/padlock_cipher.c user/jeff/numa/sys/dev/bhnd/bhnd_ids.h user/jeff/numa/sys/dev/bhnd/bhnd_subr.c user/jeff/numa/sys/dev/bhnd/bhnd_types.h user/jeff/numa/sys/dev/bhnd/bhndb/bhndb_pci.c user/jeff/numa/sys/dev/bhnd/bhndb/bhndb_pcivar.h user/jeff/numa/sys/dev/bhnd/cores/chipc/chipc.c user/jeff/numa/sys/dev/bhnd/cores/chipc/pwrctl/bhnd_pwrctl.c user/jeff/numa/sys/dev/bhnd/cores/pci/bhnd_pcireg.h user/jeff/numa/sys/dev/bhnd/siba/siba.c user/jeff/numa/sys/dev/bwn/if_bwn.c user/jeff/numa/sys/dev/bwn/if_bwn_pci.c user/jeff/numa/sys/dev/bwn/if_bwn_pcivar.h user/jeff/numa/sys/dev/bwn/if_bwn_siba_compat.c user/jeff/numa/sys/dev/efidev/efirt.c (contents, props changed) user/jeff/numa/sys/dev/hwpmc/hwpmc_logging.c user/jeff/numa/sys/dev/hwpmc/hwpmc_mod.c user/jeff/numa/sys/dev/hyperv/vmbus/amd64/vmbus_vector.S user/jeff/numa/sys/dev/hyperv/vmbus/i386/vmbus_vector.S user/jeff/numa/sys/dev/hyperv/vmbus/vmbus.c user/jeff/numa/sys/dev/nvme/nvme_sim.c user/jeff/numa/sys/dev/random/random_harvestq.c user/jeff/numa/sys/dev/uart/uart_dev_msm.c user/jeff/numa/sys/dev/uart/uart_dev_msm.h user/jeff/numa/sys/dev/usb/net/if_cdce.c user/jeff/numa/sys/dev/usb/serial/u3g.c user/jeff/numa/sys/dev/usb/serial/umodem.c user/jeff/numa/sys/dev/usb/usbdevs user/jeff/numa/sys/fs/ext2fs/ext2_lookup.c user/jeff/numa/sys/fs/ext2fs/ext2_vfsops.c user/jeff/numa/sys/fs/fdescfs/fdesc_vnops.c user/jeff/numa/sys/fs/nfs/nfs_commonport.c user/jeff/numa/sys/fs/nfs/nfs_var.h user/jeff/numa/sys/fs/nfsclient/nfs_clvnops.c user/jeff/numa/sys/fs/nfsserver/nfs_nfsdserv.c user/jeff/numa/sys/fs/nfsserver/nfs_nfsdstate.c user/jeff/numa/sys/fs/smbfs/smbfs_vnops.c user/jeff/numa/sys/fs/tmpfs/tmpfs_vnops.c user/jeff/numa/sys/geom/geom_disk.c user/jeff/numa/sys/geom/geom_disk.h user/jeff/numa/sys/geom/nop/g_nop.c user/jeff/numa/sys/geom/nop/g_nop.h user/jeff/numa/sys/geom/uzip/g_uzip_zlib.c user/jeff/numa/sys/gnu/dev/bwn/phy_n/if_bwn_phy_n_core.c user/jeff/numa/sys/i386/i386/apic_vector.s user/jeff/numa/sys/i386/i386/atpic_vector.s user/jeff/numa/sys/i386/i386/bpf_jit_machdep.c user/jeff/numa/sys/i386/i386/exception.s user/jeff/numa/sys/i386/i386/k6_mem.c user/jeff/numa/sys/i386/i386/pmap.c user/jeff/numa/sys/i386/ibcs2/ibcs2_misc.c user/jeff/numa/sys/i386/include/vmparam.h user/jeff/numa/sys/kern/init_main.c user/jeff/numa/sys/kern/kern_cpu.c user/jeff/numa/sys/kern/kern_ctf.c user/jeff/numa/sys/kern/kern_descrip.c user/jeff/numa/sys/kern/kern_pmc.c user/jeff/numa/sys/kern/link_elf_obj.c user/jeff/numa/sys/kern/subr_bus.c user/jeff/numa/sys/kern/subr_kdb.c user/jeff/numa/sys/kern/subr_sfbuf.c user/jeff/numa/sys/kern/subr_taskqueue.c user/jeff/numa/sys/kern/subr_vmem.c user/jeff/numa/sys/kern/vfs_bio.c user/jeff/numa/sys/kern/vfs_syscalls.c user/jeff/numa/sys/kern/vnode_if.src user/jeff/numa/sys/mips/include/vmparam.h user/jeff/numa/sys/mips/mips/busdma_machdep.c user/jeff/numa/sys/mips/nlm/dev/sec/nlmrsa.c user/jeff/numa/sys/modules/Makefile user/jeff/numa/sys/net/if_vlan.c user/jeff/numa/sys/net/iflib.c user/jeff/numa/sys/netgraph/ng_bridge.c user/jeff/numa/sys/netgraph/ng_deflate.c user/jeff/numa/sys/netgraph/ng_parse.c user/jeff/numa/sys/netinet/sctp_indata.c user/jeff/numa/sys/netinet/sctputil.c user/jeff/numa/sys/netinet6/in6_jail.c user/jeff/numa/sys/netpfil/ipfw/ip_fw2.c user/jeff/numa/sys/netpfil/ipfw/ip_fw_dynamic.c user/jeff/numa/sys/netpfil/ipfw/ip_fw_log.c user/jeff/numa/sys/opencrypto/cryptodev.h user/jeff/numa/sys/powerpc/aim/aim_machdep.c user/jeff/numa/sys/powerpc/aim/mmu_oea.c user/jeff/numa/sys/powerpc/aim/mmu_oea64.c user/jeff/numa/sys/powerpc/aim/trap_subr64.S user/jeff/numa/sys/powerpc/booke/pmap.c user/jeff/numa/sys/powerpc/conf/GENERIC64 user/jeff/numa/sys/powerpc/include/pmap.h user/jeff/numa/sys/powerpc/include/vmparam.h user/jeff/numa/sys/powerpc/mpc85xx/fsl_sata.c user/jeff/numa/sys/powerpc/powernv/opal.h user/jeff/numa/sys/powerpc/powernv/opal_console.c user/jeff/numa/sys/powerpc/powernv/opal_pci.c user/jeff/numa/sys/powerpc/powerpc/bus_machdep.c user/jeff/numa/sys/powerpc/powerpc/copyinout.c user/jeff/numa/sys/powerpc/powerpc/machdep.c user/jeff/numa/sys/powerpc/powerpc/mmu_if.m user/jeff/numa/sys/powerpc/powerpc/mp_machdep.c user/jeff/numa/sys/powerpc/powerpc/pmap_dispatch.c user/jeff/numa/sys/powerpc/powerpc/swtch64.S user/jeff/numa/sys/powerpc/powerpc/vm_machdep.c user/jeff/numa/sys/powerpc/pseries/phyp_vscsi.c user/jeff/numa/sys/powerpc/pseries/xics.c user/jeff/numa/sys/riscv/include/vmparam.h user/jeff/numa/sys/sparc64/include/vmparam.h user/jeff/numa/sys/sys/elf_common.h user/jeff/numa/sys/sys/random.h user/jeff/numa/sys/sys/sf_buf.h user/jeff/numa/sys/sys/syscallsubr.h user/jeff/numa/sys/sys/vmmeter.h user/jeff/numa/sys/ufs/ffs/ffs_snapshot.c user/jeff/numa/sys/ufs/ffs/ffs_softdep.c user/jeff/numa/sys/ufs/ufs/ufs_vnops.c user/jeff/numa/sys/vm/vm_page.c user/jeff/numa/sys/x86/cpufreq/est.c user/jeff/numa/sys/x86/include/apicvar.h user/jeff/numa/sys/x86/include/x86_var.h user/jeff/numa/sys/x86/isa/atpic.c user/jeff/numa/sys/x86/isa/atrtc.c user/jeff/numa/sys/x86/x86/identcpu.c user/jeff/numa/sys/x86/x86/local_apic.c user/jeff/numa/tests/sys/geom/class/nop/nop_test.sh user/jeff/numa/tests/sys/opencrypto/cryptotest.py user/jeff/numa/usr.bin/dtc/Makefile user/jeff/numa/usr.bin/dtc/dtc.1 user/jeff/numa/usr.bin/dtc/dtc.cc user/jeff/numa/usr.bin/dtc/fdt.cc user/jeff/numa/usr.bin/dtc/fdt.hh user/jeff/numa/usr.bin/dtc/input_buffer.cc user/jeff/numa/usr.bin/dtc/input_buffer.hh user/jeff/numa/usr.bin/truss/syscall.h user/jeff/numa/usr.bin/truss/syscalls.c user/jeff/numa/usr.bin/units/units.c user/jeff/numa/usr.bin/vmstat/vmstat.8 user/jeff/numa/usr.bin/xinstall/Makefile user/jeff/numa/usr.bin/xinstall/xinstall.c user/jeff/numa/usr.sbin/bhyvectl/bhyvectl.c user/jeff/numa/usr.sbin/kldxref/ef.c user/jeff/numa/usr.sbin/kldxref/ef.h user/jeff/numa/usr.sbin/kldxref/ef_aarch64.c user/jeff/numa/usr.sbin/kldxref/ef_obj.c user/jeff/numa/usr.sbin/kldxref/ef_powerpc.c user/jeff/numa/usr.sbin/kldxref/kldxref.c user/jeff/numa/usr.sbin/makefs/ffs.c user/jeff/numa/usr.sbin/makefs/mtree.c user/jeff/numa/usr.sbin/newsyslog/newsyslog.conf.5 user/jeff/numa/usr.sbin/pmcstat/pmcstat.c user/jeff/numa/usr.sbin/service/service.8 user/jeff/numa/usr.sbin/service/service.sh Directory Properties: user/jeff/numa/ (props changed) user/jeff/numa/contrib/llvm/ (props changed) user/jeff/numa/contrib/llvm/tools/lld/ (props changed) user/jeff/numa/contrib/tzdata/ (props changed) user/jeff/numa/gnu/usr.bin/gdb/ (props changed) user/jeff/numa/sys/contrib/libfdt/ (props changed) Modified: user/jeff/numa/Makefile.inc1 ============================================================================== --- user/jeff/numa/Makefile.inc1 Fri Jan 19 22:54:04 2018 (r328184) +++ user/jeff/numa/Makefile.inc1 Fri Jan 19 22:59:22 2018 (r328185) @@ -1976,7 +1976,7 @@ bootstrap-tools: ${_bt}-${_tool} # # build-tools: Build special purpose build tools # -.if !defined(NO_SHARE) +.if !defined(NO_SHARE) && ${MK_SYSCONS} != "no" _share= share/syscons/scrnmaps .endif Modified: user/jeff/numa/Makefile.libcompat ============================================================================== --- user/jeff/numa/Makefile.libcompat Fri Jan 19 22:54:04 2018 (r328184) +++ user/jeff/numa/Makefile.libcompat Fri Jan 19 22:59:22 2018 (r328185) @@ -35,18 +35,18 @@ LIB32WMAKEFLAGS= \ OBJCOPY="${XOBJCOPY}" .elif ${TARGET_ARCH:Mmips64*} != "" -.if ${WANT_COMPILER_TYPE} == clang || \ - (defined(X_COMPILER_TYPE) && ${X_COMPILER_TYPE} == clang) -.if ${TARGET_ARCH:Mmips64el*} != "" -LIB32CPUFLAGS= -target mipsel-unknown-freebsd12.0 -.else -LIB32CPUFLAGS= -target mips-unknown-freebsd12.0 -.endif -.else +.if ${WANT_COMPILER_TYPE} == gcc || \ + (defined(X_COMPILER_TYPE) && ${X_COMPILER_TYPE} == gcc) .if empty(TARGET_CPUTYPE) LIB32CPUFLAGS= -march=mips3 .else LIB32CPUFLAGS= -march=${TARGET_CPUTYPE} +.endif +.else +.if ${TARGET_ARCH:Mmips64el*} != "" +LIB32CPUFLAGS= -target mipsel-unknown-freebsd12.0 +.else +LIB32CPUFLAGS= -target mips-unknown-freebsd12.0 .endif .endif LIB32CPUFLAGS+= -mabi=32 Modified: user/jeff/numa/bin/ls/Makefile ============================================================================== --- user/jeff/numa/bin/ls/Makefile Fri Jan 19 22:54:04 2018 (r328184) +++ user/jeff/numa/bin/ls/Makefile Fri Jan 19 22:59:22 2018 (r328185) @@ -6,7 +6,7 @@ PACKAGE=runtime PROG= ls SRCS= cmp.c ls.c print.c util.c -LIBADD= xo util +LIBADD= util .if !defined(RELEASE_CRUNCH) && \ ${MK_LS_COLORS} != no Modified: user/jeff/numa/bin/ls/Makefile.depend ============================================================================== --- user/jeff/numa/bin/ls/Makefile.depend Fri Jan 19 22:54:04 2018 (r328184) +++ user/jeff/numa/bin/ls/Makefile.depend Fri Jan 19 22:59:22 2018 (r328185) @@ -9,7 +9,6 @@ DIRDEPS = \ lib/libc \ lib/libcompiler_rt \ lib/libutil \ - lib/libxo \ lib/ncurses/ncursesw \ Modified: user/jeff/numa/bin/ls/extern.h ============================================================================== --- user/jeff/numa/bin/ls/extern.h Fri Jan 19 22:54:04 2018 (r328184) +++ user/jeff/numa/bin/ls/extern.h Fri Jan 19 22:59:22 2018 (r328185) @@ -47,17 +47,14 @@ int revsizecmp(const FTSENT *, const FTSENT *); void printcol(const DISPLAY *); void printlong(const DISPLAY *); -int printname(const char *, const char *); +int printname(const char *); void printscol(const DISPLAY *); void printstream(const DISPLAY *); void usage(void); -int prn_normal(const char *, const char *); -char * getname(const char *); +int prn_normal(const char *); size_t len_octal(const char *, int); -int prn_octal(const char *, const char *); -char * get_octal(const char *); -int prn_printable(const char *, const char *); -char * get_printable(const char *); +int prn_octal(const char *); +int prn_printable(const char *); #ifdef COLORLS void parsecolors(const char *cs); void colorquit(int); Modified: user/jeff/numa/bin/ls/ls.1 ============================================================================== --- user/jeff/numa/bin/ls/ls.1 Fri Jan 19 22:54:04 2018 (r328184) +++ user/jeff/numa/bin/ls/ls.1 Fri Jan 19 22:59:22 2018 (r328185) @@ -32,7 +32,7 @@ .\" @(#)ls.1 8.7 (Berkeley) 7/29/94 .\" $FreeBSD$ .\" -.Dd December 1, 2015 +.Dd January 17, 2018 .Dt LS 1 .Os .Sh NAME @@ -40,7 +40,6 @@ .Nd list directory contents .Sh SYNOPSIS .Nm -.Op Fl -libxo .Op Fl ABCFGHILPRSTUWZabcdfghiklmnopqrstuwxy1, .Op Fl D Ar format .Op Ar @@ -69,13 +68,6 @@ lexicographical order. .Pp The following options are available: .Bl -tag -width indent -.It Fl -libxo -Generate output via -.Xr libxo 3 -in a selection of different human and machine readable formats. -See -.Xr xo_parse_args 3 -for details on command line arguments. .It Fl A Include directory entries whose names begin with a dot @@ -805,11 +797,9 @@ specification. .Xr getfacl 1 , .Xr sort 1 , .Xr xterm 1 , -.Xr libxo 3 , .Xr localeconv 3 , .Xr strftime 3 , .Xr strmode 3 , -.Xr xo_parse_args 3 , .Xr termcap 5 , .Xr maclabel 7 , .Xr sticky 7 , Modified: user/jeff/numa/bin/ls/ls.c ============================================================================== --- user/jeff/numa/bin/ls/ls.c Fri Jan 19 22:54:04 2018 (r328184) +++ user/jeff/numa/bin/ls/ls.c Fri Jan 19 22:59:22 2018 (r328185) @@ -68,7 +68,6 @@ __FBSDID("$FreeBSD$"); #include #include #endif -#include #include "ls.h" #include "extern.h" @@ -121,7 +120,7 @@ static int f_nofollow; /* don't follow symbolic link int f_nonprint; /* show unprintables as ? */ static int f_nosort; /* don't sort output */ int f_notabs; /* don't use tab-separated multi-col output */ - int f_numericonly; /* don't convert uid/gid to name */ +static int f_numericonly; /* don't convert uid/gid to name */ int f_octal; /* show unprintables as \xxx */ int f_octal_escape; /* like f_octal but use C escapes if possible */ static int f_recursive; /* ls subdirectories also */ @@ -192,13 +191,6 @@ main(int argc, char *argv[]) fts_options = FTS_PHYSICAL; if (getenv("LS_SAMESORT")) f_samesort = 1; - - argc = xo_parse_args(argc, argv); - if (argc < 0) - return (1); - xo_set_flags(NULL, XOF_COLUMNS); - xo_set_version(LS_XO_VERSION); - while ((ch = getopt(argc, argv, "1ABCD:FGHILPRSTUWXZabcdfghiklmnopqrstuwxy,")) != -1) { switch (ch) { @@ -395,7 +387,7 @@ main(int argc, char *argv[]) f_color = 1; } #else - xo_warnx("color support not compiled in"); + warnx("color support not compiled in"); #endif /*COLORLS*/ #ifdef COLORLS @@ -493,13 +485,10 @@ main(int argc, char *argv[]) else printfcn = printcol; - xo_open_container("file-information"); if (argc) traverse(argc, argv, fts_options); else traverse(1, dotav, fts_options); - xo_close_container("file-information"); - xo_finish(); exit(rval); } @@ -517,11 +506,10 @@ traverse(int argc, char *argv[], int options) FTS *ftsp; FTSENT *p, *chp; int ch_options; - int first = 1; if ((ftsp = fts_open(argv, options, f_nosort ? NULL : mastercmp)) == NULL) - xo_err(1, "fts_open"); + err(1, "fts_open"); /* * We ignore errors from fts_children here since they will be @@ -543,11 +531,11 @@ traverse(int argc, char *argv[], int options) while ((p = fts_read(ftsp)) != NULL) switch (p->fts_info) { case FTS_DC: - xo_warnx("%s: directory causes a cycle", p->fts_name); + warnx("%s: directory causes a cycle", p->fts_name); break; case FTS_DNR: case FTS_ERR: - xo_warnx("%s: %s", p->fts_path, strerror(p->fts_errno)); + warnx("%s: %s", p->fts_path, strerror(p->fts_errno)); rval = 1; break; case FTS_D: @@ -555,40 +543,31 @@ traverse(int argc, char *argv[], int options) p->fts_name[0] == '.' && !f_listdot) break; - if (first) { - first = 0; - xo_open_list("directory"); - } - xo_open_instance("directory"); - /* * If already output something, put out a newline as * a separator. If multiple arguments, precede each * directory with its name. */ if (output) { - xo_emit("\n"); - (void)printname("path", p->fts_path); - xo_emit(":\n"); + putchar('\n'); + (void)printname(p->fts_path); + puts(":"); } else if (argc > 1) { - (void)printname("path", p->fts_path); - xo_emit(":\n"); + (void)printname(p->fts_path); + puts(":"); output = 1; } chp = fts_children(ftsp, ch_options); display(p, chp, options); - xo_close_instance("directory"); if (!f_recursive && chp != NULL) (void)fts_set(ftsp, p, FTS_SKIP); break; default: break; } - if (!first) - xo_close_list("directory"); if (errno) - xo_err(1, "fts_read"); + err(1, "fts_read"); } /* @@ -635,7 +614,7 @@ display(const FTSENT *p, FTSENT *list, int options) /* Fill-in "::" as "0:0:0" for the sake of scanf. */ jinitmax = malloc(strlen(initmax) * 2 + 2); if (jinitmax == NULL) - xo_err(1, "malloc"); + err(1, "malloc"); initmax2 = jinitmax; if (*initmax == ':') strcpy(initmax2, "0:"), initmax2 += 2; @@ -706,7 +685,7 @@ display(const FTSENT *p, FTSENT *list, int options) flags = NULL; for (cur = list, entries = 0; cur; cur = cur->fts_link) { if (cur->fts_info == FTS_ERR || cur->fts_info == FTS_NS) { - xo_warnx("%s: %s", + warnx("%s: %s", cur->fts_name, strerror(cur->fts_errno)); cur->fts_number = NO_PRINT; rval = 1; @@ -772,7 +751,7 @@ display(const FTSENT *p, FTSENT *list, int options) flags = strdup("-"); } if (flags == NULL) - xo_err(1, "fflagstostr"); + err(1, "fflagstostr"); flen = strlen(flags); if (flen > (size_t)maxflags) maxflags = flen; @@ -786,7 +765,7 @@ display(const FTSENT *p, FTSENT *list, int options) error = mac_prepare_file_label(&label); if (error == -1) { - xo_warn("MAC label for %s/%s", + warn("MAC label for %s/%s", cur->fts_parent->fts_path, cur->fts_name); goto label_out; @@ -807,7 +786,7 @@ display(const FTSENT *p, FTSENT *list, int options) error = mac_get_link(name, label); if (error == -1) { - xo_warn("MAC label for %s/%s", + warn("MAC label for %s/%s", cur->fts_parent->fts_path, cur->fts_name); mac_free(label); @@ -817,7 +796,7 @@ display(const FTSENT *p, FTSENT *list, int options) error = mac_to_text(label, &labelstr); if (error == -1) { - xo_warn("MAC label for %s/%s", + warn("MAC label for %s/%s", cur->fts_parent->fts_path, cur->fts_name); mac_free(label); @@ -835,7 +814,7 @@ label_out: if ((np = malloc(sizeof(NAMES) + labelstrlen + ulen + glen + flen + 4)) == NULL) - xo_err(1, "malloc"); + err(1, "malloc"); np->user = &np->data[0]; (void)strcpy(np->user, user); Modified: user/jeff/numa/bin/ls/ls.h ============================================================================== --- user/jeff/numa/bin/ls/ls.h Fri Jan 19 22:54:04 2018 (r328184) +++ user/jeff/numa/bin/ls/ls.h Fri Jan 19 22:59:22 2018 (r328185) @@ -39,8 +39,6 @@ #define HUMANVALSTR_LEN 5 -#define LS_XO_VERSION "1" - extern long blocksize; /* block size units */ extern int f_accesstime; /* use time of last access */ @@ -62,7 +60,6 @@ extern int f_statustime; /* use time of last mode chan extern int f_thousands; /* show file sizes with thousands separators */ extern char *f_timeformat; /* user-specified time format */ extern int f_notabs; /* don't use tab-separated multi-col output */ -extern int f_numericonly; /* don't convert uid/gid to name */ extern int f_type; /* add type character for non-regular files */ #ifdef COLORLS extern int f_color; /* add type in color for non-regular files */ Modified: user/jeff/numa/bin/ls/print.c ============================================================================== --- user/jeff/numa/bin/ls/print.c Fri Jan 19 22:54:04 2018 (r328184) +++ user/jeff/numa/bin/ls/print.c Fri Jan 19 22:59:22 2018 (r328185) @@ -62,7 +62,6 @@ __FBSDID("$FreeBSD$"); #include #include #endif -#include #include "ls.h" #include "extern.h" @@ -70,9 +69,9 @@ __FBSDID("$FreeBSD$"); static int printaname(const FTSENT *, u_long, u_long); static void printdev(size_t, dev_t); static void printlink(const FTSENT *); -static void printtime(const char *, time_t); +static void printtime(time_t); static int printtype(u_int); -static void printsize(const char *, size_t, off_t); +static void printsize(size_t, off_t); #ifdef COLORLS static void endcolor(int); static int colortype(mode_t); @@ -117,32 +116,26 @@ printscol(const DISPLAY *dp) { FTSENT *p; - xo_open_list("entry"); for (p = dp->list; p; p = p->fts_link) { if (IS_NOPRINT(p)) continue; - xo_open_instance("entry"); (void)printaname(p, dp->s_inode, dp->s_block); - xo_close_instance("entry"); - xo_emit("\n"); + (void)putchar('\n'); } - xo_close_list("entry"); } /* * print name in current style */ int -printname(const char *field, const char *name) +printname(const char *name) { - char fmt[BUFSIZ]; - char *s = getname(name); - int rc; - - snprintf(fmt, sizeof(fmt), "{:%s/%%hs}", field); - rc = xo_emit(fmt, s); - free(s); - return rc; + if (f_octal || f_octal_escape) + return prn_octal(name); + else if (f_nonprint) + return prn_printable(name); + else + return prn_normal(name); } static const char * @@ -209,20 +202,6 @@ compute_abbreviated_month_size(void) padding_for_month[i] = month_max_size - months_width[i]; } -/* - * print name in current style - */ -char * -getname(const char *name) -{ - if (f_octal || f_octal_escape) - return get_octal(name); - else if (f_nonprint) - return get_printable(name); - else - return strdup(name); -} - void printlong(const DISPLAY *dp) { @@ -236,83 +215,46 @@ printlong(const DISPLAY *dp) if ((dp->list == NULL || dp->list->fts_level != FTS_ROOTLEVEL) && (f_longform || f_size)) { - xo_emit("{L:total} {:total-blocks/%lu}\n", - howmany(dp->btotal, blocksize)); + (void)printf("total %lu\n", howmany(dp->btotal, blocksize)); } - xo_open_list("entry"); for (p = dp->list; p; p = p->fts_link) { - char *name, *type; if (IS_NOPRINT(p)) continue; - xo_open_instance("entry"); sp = p->fts_statp; - name = getname(p->fts_name); - if (name) - xo_emit("{ke:name/%hs}", name); if (f_inode) - xo_emit("{t:inode/%*ju} ", + (void)printf("%*ju ", dp->s_inode, (uintmax_t)sp->st_ino); if (f_size) - xo_emit("{t:blocks/%*jd} ", + (void)printf("%*jd ", dp->s_block, howmany(sp->st_blocks, blocksize)); strmode(sp->st_mode, buf); aclmode(buf, p); np = p->fts_pointer; - xo_attr("value", "%03o", (int) sp->st_mode & ALLPERMS); - if (f_numericonly) { - xo_emit("{t:mode/%s}{e:mode_octal/%03o} {t:links/%*ju} {td:user/%-*s}{e:user/%ju} {td:group/%-*s}{e:group/%ju} ", - buf, (int) sp->st_mode & ALLPERMS, dp->s_nlink, (uintmax_t)sp->st_nlink, - dp->s_user, np->user, (uintmax_t)sp->st_uid, dp->s_group, np->group, (uintmax_t)sp->st_gid); - } else { - xo_emit("{t:mode/%s}{e:mode_octal/%03o} {t:links/%*ju} {t:user/%-*s} {t:group/%-*s} ", - buf, (int) sp->st_mode & ALLPERMS, dp->s_nlink, (uintmax_t)sp->st_nlink, - dp->s_user, np->user, dp->s_group, np->group); - } - if (S_ISBLK(sp->st_mode)) - asprintf(&type, "block"); - if (S_ISCHR(sp->st_mode)) - asprintf(&type, "character"); - if (S_ISDIR(sp->st_mode)) - asprintf(&type, "directory"); - if (S_ISFIFO(sp->st_mode)) - asprintf(&type, "fifo"); - if (S_ISLNK(sp->st_mode)) - asprintf(&type, "symlink"); - if (S_ISREG(sp->st_mode)) - asprintf(&type, "regular"); - if (S_ISSOCK(sp->st_mode)) - asprintf(&type, "socket"); - if (S_ISWHT(sp->st_mode)) - asprintf(&type, "whiteout"); - xo_emit("{e:type/%s}", type); - free(type); + (void)printf("%s %*ju %-*s %-*s ", buf, dp->s_nlink, + (uintmax_t)sp->st_nlink, dp->s_user, np->user, dp->s_group, + np->group); if (f_flags) - xo_emit("{:flags/%-*s} ", dp->s_flags, np->flags); + (void)printf("%-*s ", dp->s_flags, np->flags); if (f_label) - xo_emit("{t:label/%-*s} ", dp->s_label, np->label); + (void)printf("%-*s ", dp->s_label, np->label); if (S_ISCHR(sp->st_mode) || S_ISBLK(sp->st_mode)) printdev(dp->s_size, sp->st_rdev); else - printsize("size", dp->s_size, sp->st_size); + printsize(dp->s_size, sp->st_size); if (f_accesstime) - printtime("access-time", sp->st_atime); + printtime(sp->st_atime); else if (f_birthtime) - printtime("birth-time", sp->st_birthtime); + printtime(sp->st_birthtime); else if (f_statustime) - printtime("change-time", sp->st_ctime); + printtime(sp->st_ctime); else - printtime("modify-time", sp->st_mtime); + printtime(sp->st_mtime); #ifdef COLORLS if (f_color) color_printed = colortype(sp->st_mode); #endif - - if (name) { - xo_emit("{dk:name/%hs}", name); - free(name); - } - + (void)printname(p->fts_name); #ifdef COLORLS if (f_color && color_printed) endcolor(0); @@ -321,10 +263,8 @@ printlong(const DISPLAY *dp) (void)printtype(sp->st_mode); if (S_ISLNK(sp->st_mode)) printlink(p); - xo_close_instance("entry"); - xo_emit("\n"); + (void)putchar('\n'); } - xo_close_list("entry"); } void @@ -333,27 +273,23 @@ printstream(const DISPLAY *dp) FTSENT *p; int chcnt; - xo_open_list("entry"); for (p = dp->list, chcnt = 0; p; p = p->fts_link) { if (p->fts_number == NO_PRINT) continue; /* XXX strlen does not take octal escapes into account. */ if (strlen(p->fts_name) + chcnt + (p->fts_link ? 2 : 0) >= (unsigned)termwidth) { - xo_emit("\n"); + putchar('\n'); chcnt = 0; } - xo_open_instance("file"); chcnt += printaname(p, dp->s_inode, dp->s_block); - xo_close_instance("file"); if (p->fts_link) { - xo_emit(", "); + printf(", "); chcnt += 2; } } - xo_close_list("entry"); if (chcnt) - xo_emit("\n"); + putchar('\n'); } void @@ -387,6 +323,7 @@ printcol(const DISPLAY *dp) if (dp->entries > lastentries) { if ((narray = realloc(array, dp->entries * sizeof(FTSENT *))) == NULL) { + warn(NULL); printscol(dp); return; } @@ -417,21 +354,17 @@ printcol(const DISPLAY *dp) if ((dp->list == NULL || dp->list->fts_level != FTS_ROOTLEVEL) && (f_longform || f_size)) { - xo_emit("{L:total} {:total-blocks/%lu}\n", - howmany(dp->btotal, blocksize)); + (void)printf("total %lu\n", howmany(dp->btotal, blocksize)); } - xo_open_list("entry"); base = 0; for (row = 0; row < numrows; ++row) { endcol = colwidth; if (!f_sortacross) base = row; for (col = 0, chcnt = 0; col < numcols; ++col) { - xo_open_instance("entry"); chcnt += printaname(array[base], dp->s_inode, dp->s_block); - xo_close_instance("entry"); if (f_sortacross) base++; else @@ -442,14 +375,13 @@ printcol(const DISPLAY *dp) <= endcol) { if (f_sortacross && col + 1 >= numcols) break; - xo_emit(f_notabs ? " " : "\t"); + (void)putchar(f_notabs ? ' ' : '\t'); chcnt = cnt; } endcol += colwidth; } - xo_emit("\n"); + (void)putchar('\n'); } - xo_close_list("entry"); } /* @@ -468,16 +400,16 @@ printaname(const FTSENT *p, u_long inodefield, u_long sp = p->fts_statp; chcnt = 0; if (f_inode) - chcnt += xo_emit("{t:inode/%*ju} ", + chcnt += printf("%*ju ", (int)inodefield, (uintmax_t)sp->st_ino); if (f_size) - chcnt += xo_emit("{t:size/%*jd} ", + chcnt += printf("%*jd ", (int)sizefield, howmany(sp->st_blocks, blocksize)); #ifdef COLORLS if (f_color) color_printed = colortype(sp->st_mode); #endif - chcnt += printname("name", p->fts_name); + chcnt += printname(p->fts_name); #ifdef COLORLS if (f_color && color_printed) endcolor(0); @@ -493,7 +425,8 @@ printaname(const FTSENT *p, u_long inodefield, u_long static void printdev(size_t width, dev_t dev) { - xo_emit("{:device/%#*jx} ", (u_int)width, (uintmax_t)dev); + + (void)printf("%#*jx ", (u_int)width, (uintmax_t)dev); } static size_t @@ -522,10 +455,9 @@ ls_strftime(char *str, size_t len, const char *fmt, co } static void -printtime(const char *field, time_t ftime) +printtime(time_t ftime) { char longstring[80]; - char fmt[BUFSIZ]; static time_t now = 0; const char *format; static int d_first = -1; @@ -548,12 +480,8 @@ printtime(const char *field, time_t ftime) /* mmm dd yyyy || dd mmm yyyy */ format = d_first ? "%e %b %Y" : "%b %e %Y"; ls_strftime(longstring, sizeof(longstring), format, localtime(&ftime)); - - snprintf(fmt, sizeof(fmt), "{d:%s/%%hs} ", field); - xo_attr("value", "%ld", (long) ftime); - xo_emit(fmt, longstring); - snprintf(fmt, sizeof(fmt), "{en:%s/%%ld}", field); - xo_emit(fmt, (long) ftime); + fputs(longstring, stdout); + fputc(' ', stdout); } static int @@ -562,7 +490,7 @@ printtype(u_int mode) if (f_slash) { if ((mode & S_IFMT) == S_IFDIR) { - xo_emit("{D:\\/}{e:type/directory}"); + (void)putchar('/'); return (1); } return (0); @@ -570,25 +498,25 @@ printtype(u_int mode) switch (mode & S_IFMT) { case S_IFDIR: - xo_emit("{D:/\\/}{e:type/directory}"); + (void)putchar('/'); return (1); case S_IFIFO: - xo_emit("{D:|}{e:type/fifo}"); + (void)putchar('|'); return (1); case S_IFLNK: - xo_emit("{D:@}{e:type/link}"); + (void)putchar('@'); return (1); case S_IFSOCK: - xo_emit("{D:=}{e:type/socket}"); + (void)putchar('='); return (1); case S_IFWHT: - xo_emit("{D:%%}{e:type/whiteout}"); + (void)putchar('%'); return (1); default: break; } if (mode & (S_IXUSR | S_IXGRP | S_IXOTH)) { - xo_emit("{D:*}{e:executable/}"); + (void)putchar('*'); return (1); } return (0); @@ -598,7 +526,7 @@ printtype(u_int mode) static int putch(int c) { - xo_emit("{D:/%c}", c); + (void)putchar(c); return 0; } @@ -707,7 +635,7 @@ parsecolors(const char *cs) if (c[j] >= '0' && c[j] <= '7') { colors[i].num[j] = c[j] - '0'; if (!legacy_warn) { - xo_warnx("LSCOLORS should use " + warnx("LSCOLORS should use " "characters a-h instead of 0-9 (" "see the manual page)"); } @@ -720,7 +648,7 @@ parsecolors(const char *cs) } else if (tolower((unsigned char)c[j]) == 'x') colors[i].num[j] = -1; else { - xo_warnx("invalid character '%c' in LSCOLORS" + warnx("invalid character '%c' in LSCOLORS" " env var", c[j]); colors[i].num[j] = -1; } @@ -752,19 +680,18 @@ printlink(const FTSENT *p) (void)snprintf(name, sizeof(name), "%s/%s", p->fts_parent->fts_accpath, p->fts_name); if ((lnklen = readlink(name, path, sizeof(path) - 1)) == -1) { - xo_error("\nls: %s: %s\n", name, strerror(errno)); + (void)fprintf(stderr, "\nls: %s: %s\n", name, strerror(errno)); return; } path[lnklen] = '\0'; - xo_emit(" -> "); - (void)printname("target", path); + (void)printf(" -> "); + (void)printname(path); } static void -printsize(const char *field, size_t width, off_t bytes) +printsize(size_t width, off_t bytes) { - char fmt[BUFSIZ]; - + if (f_humanval) { /* * Reserve one space before the size and allocate room for @@ -774,15 +701,13 @@ printsize(const char *field, size_t width, off_t bytes humanize_number(buf, sizeof(buf), (int64_t)bytes, "", HN_AUTOSCALE, HN_B | HN_NOSPACE | HN_DECIMAL); - snprintf(fmt, sizeof(fmt), "{:%s/%%%ds} ", field, (int) width); - xo_attr("value", "%jd", (intmax_t) bytes); - xo_emit(fmt, buf); - } else { /* with commas */ + (void)printf("%*s ", (u_int)width, buf); + } else if (f_thousands) { /* with commas */ /* This format assignment needed to work round gcc bug. */ - snprintf(fmt, sizeof(fmt), "{:%s/%%%dj%sd} ", - field, (int) width, f_thousands ? "'" : ""); - xo_emit(fmt, (intmax_t) bytes); - } + const char *format = "%*j'd "; + (void)printf(format, (u_int)width, bytes); + } else + (void)printf("%*jd ", (u_int)width, bytes); } /* @@ -825,7 +750,7 @@ aclmode(char *buf, const FTSENT *p) type = ACL_TYPE_NFS4; supports_acls = 1; } else if (ret < 0 && errno != EINVAL) { - xo_warn("%s", name); + warn("%s", name); return; } if (supports_acls == 0) { @@ -834,7 +759,7 @@ aclmode(char *buf, const FTSENT *p) type = ACL_TYPE_ACCESS; supports_acls = 1; } else if (ret < 0 && errno != EINVAL) { - xo_warn("%s", name); + warn("%s", name); return; } } @@ -843,12 +768,12 @@ aclmode(char *buf, const FTSENT *p) return; facl = acl_get_link_np(name, type); if (facl == NULL) { - xo_warn("%s", name); + warn("%s", name); return; } if (acl_is_trivial_np(facl, &trivial)) { acl_free(facl); - xo_warn("%s", name); + warn("%s", name); return; } if (!trivial) Modified: user/jeff/numa/bin/ls/util.c ============================================================================== --- user/jeff/numa/bin/ls/util.c Fri Jan 19 22:54:04 2018 (r328184) +++ user/jeff/numa/bin/ls/util.c Fri Jan 19 22:59:22 2018 (r328185) @@ -52,19 +52,13 @@ __FBSDID("$FreeBSD$"); #include #include #include -#include #include "ls.h" #include "extern.h" int -prn_normal(const char *field, const char *s) +prn_normal(const char *s) { - char fmt[_POSIX2_LINE_MAX]; - - snprintf(fmt, sizeof(fmt), "{:%s/%%hs}", field); - return xo_emit(fmt, s); -#if 0 mbstate_t mbs; wchar_t wc; int i, n; @@ -91,47 +85,43 @@ prn_normal(const char *field, const char *s) n += wcwidth(wc); } return (n); -#endif } -char * -get_printable(const char *s) +int +prn_printable(const char *s) { mbstate_t mbs; wchar_t wc; int i, n; size_t clen; - int slen = strlen(s); - char *buf = alloca(slen + 1), *bp = buf; memset(&mbs, 0, sizeof(mbs)); n = 0; while ((clen = mbrtowc(&wc, s, MB_LEN_MAX, &mbs)) != 0) { if (clen == (size_t)-1) { - *bp++ = '?'; + putchar('?'); s++; n++; memset(&mbs, 0, sizeof(mbs)); continue; } if (clen == (size_t)-2) { - *bp++ = '?'; + putchar('?'); n++; break; } if (!iswprint(wc)) { - *bp++ = '?'; + putchar('?'); s += clen; n++; continue; } for (i = 0; i < (int)clen; i++) - *bp++ = (unsigned char)s[i]; + putchar((unsigned char)s[i]); s += clen; n += wcwidth(wc); } - *bp = '\0'; - return strdup(buf); + return (n); } /* @@ -177,8 +167,8 @@ len_octal(const char *s, int len) return (r); } -char * -get_octal(const char *s) +int +prn_octal(const char *s) { static const char esc[] = "\\\\\"\"\aa\bb\ff\nn\rr\tt\vv"; const char *p; @@ -187,8 +177,6 @@ get_octal(const char *s) size_t clen; unsigned char ch; int goodchar, i, len, prtlen; - int slen = strlen(s); - char *buf = alloca(slen * 4 + 1), *bp = buf; memset(&mbs, 0, sizeof(mbs)); len = 0; @@ -196,7 +184,7 @@ get_octal(const char *s) goodchar = clen != (size_t)-1 && clen != (size_t)-2; if (goodchar && iswprint(wc) && wc != L'\"' && wc != L'\\') { for (i = 0; i < (int)clen; i++) - *bp++ = (unsigned char)s[i]; + putchar((unsigned char)s[i]); len += wcwidth(wc); } else if (goodchar && f_octal_escape && #if WCHAR_MIN < 0 @@ -204,8 +192,8 @@ get_octal(const char *s) #endif wc <= (wchar_t)UCHAR_MAX && (p = strchr(esc, (char)wc)) != NULL) { - *bp ++ = '\\'; - *bp++ = p[1]; + putchar('\\'); + putchar(p[1]); len += 2; } else { if (goodchar) @@ -216,10 +204,10 @@ get_octal(const char *s) prtlen = strlen(s); for (i = 0; i < prtlen; i++) { ch = (unsigned char)s[i]; - *bp++ = '\\'; - *bp++ = '0' + (ch >> 6); - *bp++ = '0' + ((ch >> 3) & 7); - *bp++ = '0' + (ch & 7); + putchar('\\'); + putchar('0' + (ch >> 6)); + putchar('0' + ((ch >> 3) & 7)); + putchar('0' + (ch & 7)); len += 4; } } @@ -231,15 +219,13 @@ get_octal(const char *s) } else s += clen; } - - *bp = '\0'; - return strdup(buf); + return (len); } void usage(void) { - xo_error( + (void)fprintf(stderr, #ifdef COLORLS "usage: ls [-ABCFGHILPRSTUWZabcdfghiklmnopqrstuwxy1,] [-D format]" #else Modified: user/jeff/numa/contrib/bsnmp/snmpd/BEGEMOT-SNMPD.txt ============================================================================== --- user/jeff/numa/contrib/bsnmp/snmpd/BEGEMOT-SNMPD.txt Fri Jan 19 22:54:04 2018 (r328184) +++ user/jeff/numa/contrib/bsnmp/snmpd/BEGEMOT-SNMPD.txt Fri Jan 19 22:59:22 2018 (r328185) @@ -44,7 +44,7 @@ IMPORTS FROM BEGEMOT-MIB; begemotSnmpd MODULE-IDENTITY - LAST-UPDATED "200212040000Z" + LAST-UPDATED "201801190000Z" ORGANIZATION "Fraunhofer FOKUS, CATS" CONTACT-INFO " Hartmut Brandt @@ -274,7 +274,8 @@ BegemotSnmpdCommunityEntry ::= SEQUENCE { begemotSnmpdCommunityModule SectionName, begemotSnmpdCommunityIndex Unsigned32, begemotSnmpdCommunityString OCTET STRING, - begemotSnmpdCommunityDescr OCTET STRING + begemotSnmpdCommunityDescr OCTET STRING, + begemotSnmpdCommunityPermission INTEGER } begemotSnmpdCommunityModule OBJECT-TYPE @@ -309,6 +310,14 @@ begemotSnmpdCommunityDescr OBJECT-TYPE DESCRIPTION "A description what this community is good for." ::= { begemotSnmpdCommunityEntry 4 } + +begemotSnmpdCommunityPermission OBJECT-TYPE + SYNTAX INTEGER (1..4294967295) + MAX-ACCESS not-accessible *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-user@freebsd.org Sat Jan 20 18:44:21 2018 Return-Path: Delivered-To: svn-src-user@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id E9608EBFA97 for ; Sat, 20 Jan 2018 18:44:21 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id C380E2BD1; Sat, 20 Jan 2018 18:44:21 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org (repo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 0D72E20303; Sat, 20 Jan 2018 18:44:21 +0000 (UTC) (envelope-from jeff@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w0KIiKtE057678; Sat, 20 Jan 2018 18:44:20 GMT (envelope-from jeff@FreeBSD.org) Received: (from jeff@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w0KIiKjR057676; Sat, 20 Jan 2018 18:44:20 GMT (envelope-from jeff@FreeBSD.org) Message-Id: <201801201844.w0KIiKjR057676@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: jeff set sender to jeff@FreeBSD.org using -f From: Jeff Roberson Date: Sat, 20 Jan 2018 18:44:20 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r328207 - user/jeff/numa/sys/vm X-SVN-Group: user X-SVN-Commit-Author: jeff X-SVN-Commit-Paths: user/jeff/numa/sys/vm X-SVN-Commit-Revision: 328207 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 20 Jan 2018 18:44:22 -0000 Author: jeff Date: Sat Jan 20 18:44:20 2018 New Revision: 328207 URL: https://svnweb.freebsd.org/changeset/base/328207 Log: Fix some comments Modified: user/jeff/numa/sys/vm/vm_page.c user/jeff/numa/sys/vm/vm_reserv.c Modified: user/jeff/numa/sys/vm/vm_page.c ============================================================================== --- user/jeff/numa/sys/vm/vm_page.c Sat Jan 20 18:27:00 2018 (r328206) +++ user/jeff/numa/sys/vm/vm_page.c Sat Jan 20 18:44:20 2018 (r328207) @@ -2829,7 +2829,7 @@ vm_wait(void) * * Called when a page allocation function fails. Informs the * pagedaemon and performs the requested wait. Requires the - * page_queue_free and object lock on entry. Returns with the + * domain_free and object lock on entry. Returns with the * object lock held and free lock released. Returns an error when * retry is necessary. * Modified: user/jeff/numa/sys/vm/vm_reserv.c ============================================================================== --- user/jeff/numa/sys/vm/vm_reserv.c Sat Jan 20 18:27:00 2018 (r328206) +++ user/jeff/numa/sys/vm/vm_reserv.c Sat Jan 20 18:44:20 2018 (r328207) @@ -1014,7 +1014,7 @@ vm_reserv_break_all(vm_object_t object) /* * This access of object->rvq is unsynchronized so that the - * object rvq lock can nest after the pagequeue_free lock. We + * object rvq lock can nest after the domain_free lock. We * must check for races in the results. However, the object * lock prevents new additions, so we are guaranteed that when * it returns NULL the object is properly empty.