summaryrefslogtreecommitdiffstats
path: root/tools
Commit message (Collapse)AuthorAgeFilesLines
...
* Make the slice names for root configurable. For embedded platforms, weimp2015-11-121-17/+26
| | | | | | | | | | | | | need s1 to be a FAT partition, s2 to be the config partition and s3 and s4 to be the ping-pong upgrade partitions. NANO_SLICE_ROOT defaults to s1 NANO_SLICE_ALTROOT defaults to s2 NANO_SLICE_CFG defaults to s3 NANO_SLICE_DATA defaults to s4 All can be overridden in the config file. Some basic sanity checking is in place, but is no substitute for being careful.
* Use explicit filename when creating locale symlinks to avoid creating abdrewery2015-11-111-1/+2
| | | | | | | directory symlink when the target directory does not exist. This will cause an error instead of a broken setup. Sponsored by: EMC / Isilon Storage Division
* - Move ng_bluetooth.4 under MK_BLUETOOTH != nongie2015-11-101-0/+4
| | | | | | | | | - Move all section 5 bluetooth manpages under MK_BLUETOOTH != no MFC after: 3 days PR: 193260 Reported by: Philippe Michel <philippe.michel7@sfr.fr> Sponsored by: EMC / Isilon Storage Division
* Add a README to explain how to generate the locales from CLDR databapt2015-11-091-0/+18
|
* Integrate tools/regression/lib/libc/gen into the FreeBSD test suitengie2015-11-098-1490/+0
| | | | | | | | | | | | | | | | | | | as lib/libc/tests/gen The code in test-fnmatch that was used for generating: - bin/sh/tests/builtins/case2.0 - bin/sh/tests/builtins/case3.0 has been left undisturbed. The target `make sh-tests` has been moved over from tools/regression/lib/libc/gen/Makefile to lib/libc/tests/gen/Makefile and made into a PHONY target case2.0 and case3.0 test input generation isn't being done automatically. This needs additional discussion. MFC after: 1 week Sponsored by: EMC / Isilon Storage Division
* Integrate tools/regression/lib/libc/net into the FreeBSD test suitengie2015-11-088-459/+0
| | | | | | | | | | as lib/libc/tests/net Also, fix eui64_aton_test:test_str(..). The test was comparing the result of eui64_aton to a pointer of the expected result. MFC after: 1 week Sponsored by: EMC / Isilon Storage Division
* Modify the tool that generates the locales so that the generated CJK localesbapt2015-11-081-1/+27
| | | | | | | are padded as expected by the users Submitted by: marino Obtained from: DragonflyBSD
* Integrate tools/regression/lib/libc/string into the FreeBSD test suitengie2015-11-086-436/+0
| | | | | | | as lib/libc/tests/string MFC after: 1 week Sponsored by: EMC / Isilon Storage Division
* Integrate tools/regression/lib/libc/stdlib into the FreeBSD test suitengie2015-11-088-510/+0
| | | | | | | | | | as lib/libc/tests/stdlib - Make the code a bit more style(9) compliant - Convert a sizeof(x)/sizeof(x[0]) to nitems MFC after: 1 week Sponsored by: EMC / Isilon Storage Division
* Integrate tools/regression/lib/libc/stdio into the FreeBSD test suitengie2015-11-0825-2295/+0
| | | | | | | | | | | as lib/libc/tests/stdio - Fix some whitespace - Convert the testcases to ATF - Convert "/dev/null" to _PATH_DEVNULL MFC after: 1 week Sponsored by: EMC / Isilon Storage Division
* Integrate tools/regression/lib/libc/locale into the FreeBSD test suitengie2015-11-0833-2494/+0
| | | | | | | as lib/libc/tests/locale MFC after: 1 week Sponsored by: EMC / Isilon Storage Division
* Add built-in ccache build support via WITH_CCACHE_BUILD option.bdrewery2015-11-081-0/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ccache is mostly beneficial for frequent builds where -DNO_CLEAN is not used to achieve a safe pseudo-incremental build. This is explained in more detail upstream [1] [2]. It incurs about a 20%-28% hit to populate the cache, but with a full cache saves 30-50% in build times. When combined with the WITH_FAST_DEPEND feature it saves up to 65% since ccache does cache the resulting dependency file, which it does not do when using mkdep(1)/'CC -E'. Stats are provided at the end of this message. This removes the need to modify /etc/make.conf with the CC:= and CXX:= lines which conflicted with external compiler support [3] (causing the bootstrap compiler to not be built which lead to obscure failures [4]), incorrectly invoked ccache in various stages, required CCACHE_CPP2 to avoid Clang errors with parenthesis, and did not work with META_MODE. The option name was picked to match the existing option in ports. This feature is available for both in-src and out-of-src builds that use /usr/share/mk. Linking, assembly compiles, and pre-processing avoid using ccache since it is only overhead. ccache does nothing special in these modes, although there is no harm in calling it for them. CCACHE_COMPILERCHECK is set to 'content' when using the in-tree bootstrap compiler to hash the content of the compiler binary to determine if it should be a cache miss. For external compilers the 'mtime' option is used as it is more efficient and likely to be correct. Future work may optimize the 'content' check using the same checks as whether a bootstrap compiler is needed to be built. The CCACHE_CPP2 pessimization is currently default in our devel/ccache port due to Clang requiring it. Clang's -Wparentheses-equality, -Wtautological-compare, and -Wself-assign warnings do not mix well with compiling already-pre-processed code that may have expanded macros that trigger the warnings. GCC has so far not had this issue so it is allowed to disable the CCACHE_CPP2 default in our port. Sharing a cache between multiple checkouts, or systems, is explained in the ccache manual. Sharing a cache over NFS would likely not be worth it, but syncing cache directories between systems may be useful for an organization. There is also a memcached backend available [5]. Due to using an object directory outside of the source directory though you will need to ensure that both are in the same prefix and all users use the same layout. A possible working layout is as follows: Source: /some/prefix/src1 Source: /some/prefix/src2 Source: /some/prefix/src3 Objdir: /some/prefix/obj Environment: CCACHE_BASEDIR='${SRCTOP:H}' MAKEOBJDIRPREFIX='${SRCTOP:H}/obj' This will use src*/../obj as the MAKEOBJDIRPREFIX and tells ccache to replace all absolute paths to be relative. Using something like this is required due to -I and -o flags containing both SRC and OBJDIR absolute paths that ccache adds into its hash for the object without CCACHE_BASEDIR. distcc can be hooked into by setting CCACHE_PREFIX=/usr/local/bin/distcc. I have not personally tested this and assume it will not mix well with using the bootstrap compiler. The cache from buildworld can be reused in a subdir by first running 'make buildenv' (from r290424). Note that the cache is currently different depending on whether -j is used or not due to ccache enabling -fdiagnostics-color automatically if stderr is a TTY, which bmake only does if not using -j. The system I used for testing was: WITNESS Build options: -j20 WITH_LLDB=yes WITH_DEBUG_FILES=yes WITH_CCACHE_BUILD=yes DISK: ZFS 3-way mirror with very slow disks using SSD l2arc/log. The arc was fully populated with src tree files and ccache objects. RAM: 76GiB CPU: Intel(R) Xeon(R) CPU L5520 @2.27GHz 2 package(s) x 4 core(s) x 2 SMT threads = hw.ncpu=16 The WITH_FAST_DEPEND feature was used for comparison here as well to show the dramatic time savings with a full cache. buildworld: x buildworld-before + buildworld-ccache-empty * buildworld-ccache-full % buildworld-ccache-full-fastdep # buildworld-fastdep +-------------------------------------------------------------------------------+ |% * # +| |% * # +| |% * # xxx +| | |A | | A| | A | |A | | A | +-------------------------------------------------------------------------------+ N Min Max Median Avg Stddev x 3 3744.13 3794.31 3752.25 3763.5633 26.935139 + 3 4519 4525.04 4520.73 4521.59 3.1104823 Difference at 95.0% confidence 758.027 +/- 43.4565 20.1412% +/- 1.15466% (Student's t, pooled s = 19.1726) * 3 1823.08 1827.2 1825.62 1825.3 2.0785572 Difference at 95.0% confidence -1938.26 +/- 43.298 -51.5007% +/- 1.15045% (Student's t, pooled s = 19.1026) % 3 1266.96 1279.37 1270.47 1272.2667 6.3971113 Difference at 95.0% confidence -2491.3 +/- 44.3704 -66.1952% +/- 1.17895% (Student's t, pooled s = 19.5758) # 3 3153.34 3155.16 3154.2 3154.2333 0.91045776 Difference at 95.0% confidence -609.33 +/- 43.1943 -16.1902% +/- 1.1477% (Student's t, pooled s = 19.0569) buildkernel: x buildkernel-before + buildkernel-ccache-empty * buildkernel-ccache-empty-fastdep % buildkernel-ccache-full # buildkernel-ccache-full-fastdep @ buildkernel-fastdep +-------------------------------------------------------------------------------+ |# @ % * | |# @ % * x + | |# @ % * xx ++| | MA | | MA| | A | | A | |A | | A | +-------------------------------------------------------------------------------+ N Min Max Median Avg Stddev x 3 571.57 573.94 571.79 572.43333 1.3094401 + 3 727.97 731.91 728.06 729.31333 2.2492295 Difference at 95.0% confidence 156.88 +/- 4.17129 27.4058% +/- 0.728695% (Student's t, pooled s = 1.84034) * 3 527.1 528.29 528.08 527.82333 0.63516402 Difference at 95.0% confidence -44.61 +/- 2.33254 -7.79305% +/- 0.407478% (Student's t, pooled s = 1.02909) % 3 400.4 401.05 400.62 400.69 0.3306055 Difference at 95.0% confidence -171.743 +/- 2.16453 -30.0023% +/- 0.378128% (Student's t, pooled s = 0.954969) # 3 201.94 203.34 202.28 202.52 0.73020545 Difference at 95.0% confidence -369.913 +/- 2.40293 -64.6212% +/- 0.419774% (Student's t, pooled s = 1.06015) @ 3 369.12 370.57 369.3 369.66333 0.79033748 Difference at 95.0% confidence -202.77 +/- 2.45131 -35.4225% +/- 0.428227% (Student's t, pooled s = 1.0815) [1] https://ccache.samba.org/performance.html [2] http://www.mail-archive.com/ccache@lists.samba.org/msg00576.html [3] https://reviews.freebsd.org/D3484 [5] https://github.com/jrosdahl/ccache/pull/30 PR: 182944 [4] MFC after: 3 weeks Sponsored by: EMC / Isilon Storage Division Relnotes: yes
* Catchup with latest changes for ObsoleteFiles in case base is built usingbapt2015-11-071-206/+4
| | | | WITHOUT_LOCALE knob
* Merge from head r290483bapt2015-11-076-13/+28
|\
| * zfsboottest: catch up with r241289, call zfs_spa_init() for all found poolsavg2015-11-061-7/+9
| | | | | | | | MFC after: 8 days
| * zfsboottest: build as a 32 bit applicationavg2015-11-061-0/+1
| | | | | | | | | | | | For better emulation of the actual zfs boot code. MFC after: 8 days
| * Don't allow environment-set options to bleed into src.conf.5 generation.bdrewery2015-11-061-2/+2
| | | | | | | | | | MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division
| * Add a FAST_DEPEND option, off by default, which speeds up the build ↵bdrewery2015-11-061-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | significantly. This speeds up buildworld by 16% on my system and buildkernel by 35%. Rather than calling mkdep(1), which is just a wrapper around 'cc -E', use the modern -MD -MT -MF flags to gather and generate dependencies during compilation. This flag was introduced in GCC "a long time ago", in GCC 3.0, and is also supported by Clang. (It appears that ICC also supports this but I do not have access to test it). This avoids running the preprocessor *twice* for every build, in both 'make depend' and 'make all'. This is especially noticeable when using ccache since it does not cache preprocessor results from mkdep(1) / 'cc -E', but still speeds up compilation with the -MD flags. For 'make depend' a tree-walk is still done to ensure that all DPSRCS are generated when expected, and that beforedepend/afterdepend and _EXTRADEPEND are all still respected. In time this may change but for now I've been conservative. The time for a tree-walk with -j combined with SUBDIR_PARALLEL is not significant. For example, it takes about 9 seconds with -j15 to walk all of src/ for 'make depend' now on my system. A .depend file is still generated with the various rules that apply to the final target, or custom rules. Otherwise there are now per-built-object-file .depend files, such as .depend.filename.o. These are included directly by make rather than populating .depend with a loop and .depend lines, which only added overhead to the now almost-NOP 'make depend' phase. Before this I experimented with having mkdep(1) called in parallel per-file. While this improved the kernel and lib/libc 'make depend' phase, it resulted in slower build times overall. The -M flags are removed from CFLAGS when linking since they have no effect. Enabling this by default, for src or out-of-src, can be done once more testing has been done, such as a ports exp-run, and with more compilers. The system I used for testing was: WITNESS Build options: -j20 WITH_LLDB=yes WITH_DEBUG_FILES=yes WITH_FAST_DEPEND=yes DISK: ZFS 3-way mirror with very slow disks using SSD l2arc/log. The arc was fully populated with src tree files. RAM: 76GiB CPU: Intel(R) Xeon(R) CPU L5520 @2.27GHz 2 package(s) x 4 core(s) x 2 SMT threads = hw.ncpu=16 buildworld: x buildworld-before + buildworld-fastdep +-------------------------------------------------------------------------------+ |+ | |+ | |+ xx x| | |_MA___|| |A | +-------------------------------------------------------------------------------+ N Min Max Median Avg Stddev x 3 3744.13 3794.31 3752.25 3763.5633 26.935139 + 3 3153.34 3155.16 3154.2 3154.2333 0.91045776 Difference at 95.0% confidence -609.33 +/- 43.1943 -16.1902% +/- 1.1477% (Student's t, pooled s = 19.0569) buildkernel: x buildkernel-before + buildkernel-fastdep +-------------------------------------------------------------------------------+ |+ x | |++ xx| | A|| |A| | +-------------------------------------------------------------------------------+ N Min Max Median Avg Stddev x 3 571.57 573.94 571.79 572.43333 1.3094401 + 3 369.12 370.57 369.3 369.66333 0.79033748 Difference at 95.0% confidence -202.77 +/- 2.45131 -35.4225% +/- 0.428227% (Student's t, pooled s = 1.0815) Sponsored by: EMC / Isilon Storage Division MFC after: 3 weeks Relnotes: yes
| * Rename etc/periodic/daily/430.status-rwho to periodic/daily/430.status-uptimengie2015-11-021-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | The command was checking local/remote system uptime, so rename the script to match its function and to avoid confusion The controlling variable in /etc/periodic.conf has been renamed from daily_status_rwho_enable to daily_status_uptime_enable. MFC after: 3 days Reported by: Peter Jeremy <peter@rulingia.com> Relnotes: yes Sponsored by: EMC / Isilon Storage Division
| * Use nitems(x) instead of sizeof(x)/sizeof(x[0])ngie2015-11-021-2/+2
| | | | | | | | | | MFC after: 1 week Sponsored by: EMC / Isilon Storage Division
| * Conditionally install (if_)?(otus|rsu).4, otusfw.4, rsufw.4, and urtwn.4 ifngie2015-11-021-0/+6
| | | | | | | | | | | | | | | | | | | | | | MK_USB != no Add the manpages to OptionalObsoleteFiles.inc As a side-effect, this also fixes installworld with MK_USB == no X-MFC with: r290128 Sponsored by: EMC / Isilon Storage Division
* | Make generated makefiles respects ${SHAREDIR}bapt2015-11-011-1/+1
| |
* | Merge from headbapt2015-11-0115-116/+651
|\ \ | |/
| * Fix compiler warnings with open_to_operation.cngie2015-10-302-16/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Other sidenotes: - Remove unused variables with main(..) - Convert errx/exit with -1 to errx/exit with 1 - Fix a bogus test in try_directory_open (expected_errno == expected_errno -> errno == expected_errno) [*] - Fix some warnings related to discarded qualifiers - Remove a bogus else-statement at the end of check_mmap_exec(..) in the successful case. mmap(2), POSIX, Linux, etc all don't state what the behavior is when mixing O_WRONLY + PROT_EXEC, so assume success for now to get the test program to pass again. PR: 201286 [*] MFC after: 1 week Submitted by: David Binderman <dcb314@hotmail.com> Sponsored by: EMC / Isilon Storage Division
| * ioatcontrol(8): Add and document "raw" testing modecem2015-10-292-3/+93
| | | | | | | | | | | | | | | | Allows DMA from/to arbitrary KVA or physical address. /dev/ioat_test must be enabled by root and is only R/W root, so this is approximately as dangerous as /dev/mem and /dev/kmem. Sponsored by: EMC / Isilon Storage Division
| * Fix spelling and grammer in tools/test/README.vangyzen2015-10-281-3/+3
| | | | | | | | Reviewed by: gnn
| * Add a test for the listen queue using two test programs,gnn2015-10-283-0/+201
| | | | | | | | | | | | | | | | | | | | | | listen, and connect. The listen program is a simple server that accepts and closes sockets, until a fixed limit, then sets the listen queue to 0 and counts how many remaining connections it processes. The connect program repeatedly opens connections and closes them serving as the driver for the listen program. Sponsored by: Limelight Networks
| * Update the README to describe all the current tests in this directory.gnn2015-10-281-3/+13
| |
| * Add WITHOUT_DEBUG_FILES descriptionemaste2015-10-271-0/+3
| |
| * ioat: Add support for Block Fill operationscem2015-10-262-7/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The IOAT hardware supports writing a 64-bit pattern to some destination buffer. The same limitations on buffer length apply as for copy operations. Throughput is a bit higher (probably because fill does not have to spend bandwidth reading from a source in memory). Support for testing Block Fill has been added to ioatcontrol(8) and the ioat_test device. ioatcontrol(8) accepts the '-f' flag, which tests Block Fill. (If the flag is omitted, the tool tests copy by default.) The '-V' flag, in conjunction with '-f', verifies that buffers are filled in the expected pattern. Tested on: Broadwell DE (Xeon D-1500) Sponsored by: EMC / Isilon Storage Division
| * Add libvmmapi to OptionalObsoleteFiles.inc when MK_BHYVE == nongie2015-10-241-0/+4
| | | | | | | | | | MFC after: 1 week Sponsored by: EMC / Isilon Storage Division
| * Fix warning about redefined *_crunchdir_hostname target after r289734.bdrewery2015-10-221-1/+1
| | | | | | | | | | | | | | | | | | 'hostname' was in the build list twice. X-MFC-With: r289734 MFC after: 2 weeks Reported by: sbruno Sponsored by: EMC / Isilon Storage Division
| * Unbreak regression testing tools for net80211 crypto cipher modulesavos2015-10-223-78/+124
| | | | | | | | | | Approved by: adrian (mentor) Differential Revision: https://reviews.freebsd.org/D3441
| * Improve flexibility of ioat_test / ioatcontrol(8)cem2015-10-223-13/+157
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The test logic now preallocates memory before running the test. The buffer size is now configurable. Post-copy verification is configurable. The number of copies to chain into one transaction (one interrupt) is configurable. A 'duration' mode is added, which repeats the test until the duration has elapsed, reporting the B/s and transactions completed. ioatcontrol.8 has been updated to document the new arguments. Initial limits (on this particular Broadwell-DE) (and when the interrupts are working) seem to be: 256 interrupts/sec or ~6 GB/s, whichever limit is more restrictive. Unfortunately, it seems the interrupt-reset handling on Broadwell isn't working as intended. That will be fixed in a later commit. Sponsored by: EMC / Isilon Storage Division
| * Handle lib32 files during delete-old* when MK_LIB32=no.jmmv2015-10-201-3/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Extend OptionalObsoleteFiles.inc to delete all lib32 files when MK_LIB32 is set to no on a system that previously had lib32 libraries installed. Also, to prevent "make delete-old-dirs" from always deleting lib32 directories after an installworld, move the lib32 subtree to its own mtree file that only gets applied when MK_LIB32=yes. Test: Ran "make delete-old" and "make delete-old-libs" on a system that never had MK_LIB32 enabled, and on a system where MK_LIB32 was enabled and later disabled. Did this both on amd64 and powerpc64. Test: Ran "make tinderbox" without errors. Reviewed by: emaste Differential Revision: https://reviews.freebsd.org/D3923
* | Merge from headbapt2015-10-1923-4328/+29
|\ \ | |/
| * Integrate tools/regression/acltools into the FreeBSD test suite as tests/sys/aclngie2015-10-1713-3295/+0
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Make the requirements more complete for the testcases - Detect prerequisites so the tests won't fail (zfs.ko is loaded, zpool(1) is available, ACL support is enabled with UFS, etc). - Work with temporary files/directories/mountpoints that work with atf/kyua - Limit the testcases to work on temporary filesystems to reduce tainting the test host MFC after: 2 weeks Reviewed by: trasz (earlier version) Differential Revision: https://reviews.freebsd.org/D3810
| | \
| | \
| *-. \ Integrate tools/test/posixshm and tools/regression/posixshm into the FreeBSDngie2015-10-177-991/+0
| |\ \ \ | | | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | test suite as tests/sys/posixshm Some other highlights: - Convert the testcases over to ATF - Don't use hardcoded paths to /tmp (which violate the ATF/kyua samdbox); use mkstemp to generate temporary paths for non-SHM_ANON shm objects. MFC after: 2 weeks Sponsored by: EMC / Isilon Storage Division
| | | * Integrate tools/regression/acltools into tests/sys/aclngie2015-10-1313-3295/+0
| | | |\ | | | | | | | | | | | | | | | Apply patches I've been running for months on my GitHub project
| | | | * Integrate tools/regression/acltools into tests/sys/aclngie2015-10-0513-3295/+0
| | | | | | | | | | | | | | | | | | | | Apply patches I've been running for months on my GitHub project
| | | | * MFhead @ r288473ngie2015-10-021-1/+0
| | | | |\
| | | | * \ MFhead @ r288313ngie2015-09-2759-1023/+1339
| | | | |\ \
| | | | * \ \ MFhead @ r286584ngie2015-08-1012-25/+426
| | | | |\ \ \
| | | | * \ \ \ MFhead @ r285904ngie2015-07-2721-113/+597
| | | | |\ \ \ \
| | | | * \ \ \ \ MFhead @ r284674ngie2015-06-211-4/+20
| | | | |\ \ \ \ \
| | | | * \ \ \ \ \ MF head @ r284358ngie2015-06-1317-35/+925
| | | | |\ \ \ \ \ \
| | | | * \ \ \ \ \ \ MF head @ r283796ngie2015-05-312-60/+66
| | | | |\ \ \ \ \ \ \
| | | | * \ \ \ \ \ \ \ MFhead @ r283351ngie2015-05-2412-20/+91
| | | | |\ \ \ \ \ \ \ \
| | | | * \ \ \ \ \ \ \ \ MFhead @ r281924ngie2015-04-247-55/+141
| | | | |\ \ \ \ \ \ \ \ \
| * | | | | | | | | | | | | Fix test-fenv:test_dfl_env when run on some amd64 CPUsngie2015-10-141-0/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Compare the fields that the AMD [1] and Intel [2] specs say will be set once fnstenv returns. Not all amd64 capable processors zero out the env.__x87.__other field (example: AMD Opteron 6308). The AMD64/x64 specs aren't explicit on what the env.__x87.__other field will contain after fnstenv is executed, so the values in env.__x87.__other could be filled with arbitrary data depending on how the CPU-specific implementation of fnstenv. 1. http://support.amd.com/TechDocs/26569_APM_v5.pdf 2. http://www.intel.com/Assets/en_US/PDF/manual/253666.pdf Discussed with: kib, Anton Rang <anton.rang@isilon.com> Reviewed by: Daniel O'Connor <darius@dons.net.au> (earlier patch; pre-generalization) MFC after: 1 week Sponsored by: EMC / Isilon Storage Division Reported by: Bill Morchin <wmorchin@isilon.com>
OpenPOWER on IntegriCloud