From owner-svn-src-vendor@freebsd.org Mon Mar 19 18:34:10 2018 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DFC96F62564; Mon, 19 Mar 2018 18:34:09 +0000 (UTC) (envelope-from br@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 8EC157E1B8; Mon, 19 Mar 2018 18:34:09 +0000 (UTC) (envelope-from br@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 6F02512308; Mon, 19 Mar 2018 18:34:09 +0000 (UTC) (envelope-from br@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2JIY9x7053706; Mon, 19 Mar 2018 18:34:09 GMT (envelope-from br@FreeBSD.org) Received: (from br@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2JIY8WH053697; Mon, 19 Mar 2018 18:34:08 GMT (envelope-from br@FreeBSD.org) Message-Id: <201803191834.w2JIY8WH053697@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: br set sender to br@FreeBSD.org using -f From: Ruslan Bukin Date: Mon, 19 Mar 2018 18:34:08 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r331218 - in vendor/processor-trace: . 24982c1a6fce48f1e416461d42899805f74fbb26 24982c1a6fce48f1e416461d42899805f74fbb26/doc 24982c1a6fce48f1e416461d42899805f74fbb26/doc/man 24982c1a6fc... X-SVN-Group: vendor X-SVN-Commit-Author: br X-SVN-Commit-Paths: in vendor/processor-trace: . 24982c1a6fce48f1e416461d42899805f74fbb26 24982c1a6fce48f1e416461d42899805f74fbb26/doc 24982c1a6fce48f1e416461d42899805f74fbb26/doc/man 24982c1a6fce48f1e416461d42899805f74f... X-SVN-Commit-Revision: 331218 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Mar 2018 18:34:10 -0000 Author: br Date: Mon Mar 19 18:34:08 2018 New Revision: 331218 URL: https://svnweb.freebsd.org/changeset/base/331218 Log: Import Intel Processor Trace library. Git ID 24982c1a6fce48f1e416461d42899805f74fbb26 Sponsored by: DARPA, AFRL Differential Revision: https://reviews.freebsd.org/D12815 Added: vendor/processor-trace/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/.gitignore vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/CMakeLists.txt (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/CONTRIBUTING (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/LICENSE vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/README vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/getting_started.md (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/howto_build.md (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/howto_capture.md vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/howto_libipt.md vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/howto_pttc.md (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/man/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/man/CMakeLists.txt (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/man/pt_alloc_encoder.3.md vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/man/pt_blk_alloc_decoder.3.md vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/man/pt_blk_get_offset.3.md vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/man/pt_blk_next.3.md vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/man/pt_blk_sync_forward.3.md vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/man/pt_config.3.md vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/man/pt_enc_get_config.3.md vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/man/pt_enc_get_offset.3.md vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/man/pt_image_add_file.3.md vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/man/pt_image_alloc.3.md vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/man/pt_image_remove_by_filename.3.md vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/man/pt_image_set_callback.3.md vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/man/pt_insn_alloc_decoder.3.md vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/man/pt_insn_get_image.3.md vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/man/pt_insn_get_offset.3.md vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/man/pt_insn_next.3.md vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/man/pt_insn_sync_forward.3.md vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/man/pt_iscache_add_file.3.md vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/man/pt_iscache_alloc.3.md vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/man/pt_iscache_read.3.md vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/man/pt_iscache_set_limit.3.md vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/man/pt_library_version.3.md vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/man/pt_packet.3.md vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/man/pt_pkt_alloc_decoder.3.md vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/man/pt_pkt_get_offset.3.md vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/man/pt_pkt_sync_forward.3.md vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/man/pt_qry_alloc_decoder.3.md vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/man/pt_qry_cond_branch.3.md vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/man/pt_qry_event.3.md vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/man/pt_qry_get_offset.3.md vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/man/pt_qry_sync_forward.3.md vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/man/pt_qry_time.3.md vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/include/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/include/posix/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/include/posix/threads.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/include/pt_compiler.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/include/windows/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/include/windows/inttypes.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/include/windows/threads.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/CMakeLists.txt (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/include/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/include/intel-pt.h.in (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/internal/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/internal/include/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/internal/include/posix/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/internal/include/posix/pt_section_posix.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/internal/include/pt_asid.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/internal/include/pt_block_cache.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/internal/include/pt_block_decoder.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/internal/include/pt_config.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/internal/include/pt_cpu.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/internal/include/pt_cpuid.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/internal/include/pt_decoder_function.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/internal/include/pt_encoder.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/internal/include/pt_event_queue.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/internal/include/pt_ild.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/internal/include/pt_image.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/internal/include/pt_image_section_cache.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/internal/include/pt_insn.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/internal/include/pt_insn_decoder.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/internal/include/pt_last_ip.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/internal/include/pt_mapped_section.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/internal/include/pt_msec_cache.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/internal/include/pt_opcodes.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/internal/include/pt_packet.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/internal/include/pt_packet_decoder.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/internal/include/pt_query_decoder.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/internal/include/pt_retstack.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/internal/include/pt_section.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/internal/include/pt_section_file.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/internal/include/pt_sync.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/internal/include/pt_time.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/internal/include/pt_tnt_cache.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/internal/include/pti-disp-defs.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/internal/include/pti-disp.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/internal/include/pti-imm-defs.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/internal/include/pti-imm.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/internal/include/pti-modrm-defs.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/internal/include/pti-modrm.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/internal/include/windows/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/internal/include/windows/pt_section_windows.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/src/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/src/posix/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/src/posix/init.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/src/posix/pt_cpuid.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/src/posix/pt_section_posix.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/src/pt_asid.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/src/pt_block_cache.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/src/pt_block_decoder.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/src/pt_config.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/src/pt_cpu.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/src/pt_decoder_function.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/src/pt_encoder.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/src/pt_error.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/src/pt_event_queue.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/src/pt_ild.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/src/pt_image.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/src/pt_image_section_cache.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/src/pt_insn.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/src/pt_insn_decoder.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/src/pt_last_ip.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/src/pt_msec_cache.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/src/pt_packet.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/src/pt_packet_decoder.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/src/pt_query_decoder.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/src/pt_retstack.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/src/pt_section.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/src/pt_section_file.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/src/pt_sync.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/src/pt_time.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/src/pt_tnt_cache.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/src/pt_version.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/src/windows/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/src/windows/init.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/src/windows/pt_cpuid.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/src/windows/pt_section_windows.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/test/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/test/src/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/test/src/ptunit-asid.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/test/src/ptunit-block_cache.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/test/src/ptunit-config.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/test/src/ptunit-cpp.cpp (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/test/src/ptunit-cpu.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/test/src/ptunit-event_queue.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/test/src/ptunit-fetch.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/test/src/ptunit-ild.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/test/src/ptunit-image.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/test/src/ptunit-image_section_cache.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/test/src/ptunit-last_ip.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/test/src/ptunit-mapped_section.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/test/src/ptunit-msec_cache.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/test/src/ptunit-packet.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/test/src/ptunit-query.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/test/src/ptunit-retstack.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/test/src/ptunit-section-file.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/test/src/ptunit-section.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/test/src/ptunit-sync.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/test/src/ptunit-time.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/libipt/test/src/ptunit-tnt_cache.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/pevent/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/pevent/CMakeLists.txt (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/pevent/include/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/pevent/include/pevent.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/pevent/src/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/pevent/src/pevent.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/pevent/test/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/pevent/test/src/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/pevent/test/src/ptunit-pevent.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/ptdump/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/ptdump/CMakeLists.txt (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/ptdump/src/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/ptdump/src/ptdump.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/pttc/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/pttc/CMakeLists.txt (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/pttc/include/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/pttc/include/errcode.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/pttc/include/file.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/pttc/include/parse.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/pttc/include/pttc.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/pttc/include/util.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/pttc/include/yasm.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/pttc/src/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/pttc/src/errcode.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/pttc/src/file.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/pttc/src/main.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/pttc/src/parse.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/pttc/src/posix/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/pttc/src/posix/util.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/pttc/src/pttc.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/pttc/src/util.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/pttc/src/windows/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/pttc/src/windows/util.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/pttc/src/yasm.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/pttc/test/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/pttc/test/src/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/pttc/test/src/test_all_directives.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/pttc/test/src/test_exp_labels.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/pttc/test/src/test_label_addr.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/ptunit/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/ptunit/CMakeLists.txt (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/ptunit/include/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/ptunit/include/ptunit.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/ptunit/include/ptunit_mkfile.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/ptunit/include/ptunit_threads.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/ptunit/src/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/ptunit/src/posix/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/ptunit/src/posix/ptunit_mkfile.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/ptunit/src/ptunit.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/ptunit/src/windows/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/ptunit/src/windows/ptunit_mkfile.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/ptunit/test/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/ptunit/test/src/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/ptunit/test/src/ptunit-selftest.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/ptxed/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/ptxed/CMakeLists.txt (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/ptxed/include/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/ptxed/include/load_elf.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/ptxed/src/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/ptxed/src/load_elf.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/ptxed/src/ptxed.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/script/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/script/perf-copy-mapped-files.bash (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/script/perf-get-opts.bash (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/script/perf-read-aux.bash (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/script/perf-read-sideband.bash (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/script/test.bash (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/sideband/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/sideband/CMakeLists.txt (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/sideband/include/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/sideband/include/libipt-sb.h.in (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/sideband/internal/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/sideband/internal/include/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/sideband/internal/include/pt_sb_context.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/sideband/internal/include/pt_sb_decoder.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/sideband/internal/include/pt_sb_file.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/sideband/internal/include/pt_sb_pevent.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/sideband/internal/include/pt_sb_session.h (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/sideband/src/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/sideband/src/pt_sb_context.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/sideband/src/pt_sb_file.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/sideband/src/pt_sb_pevent.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/sideband/src/pt_sb_session.c (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/CMakeLists.txt (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/pevent/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/pevent/CMakeLists.txt (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/pevent/src/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/pevent/src/pevent-comm_exec-mmap-tsc-iret.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/pevent/src/pevent-dump.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/pevent/src/pevent-dump_verbose.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/pevent/src/pevent-fork.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/pevent/src/pevent-mmap-tip_cached.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/pevent/src/pevent-mmap_secondary-tsc.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/pevent/src/pevent-split.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/pevent/src/pevent-tip_pgd-comm_exec-mmap-tsc-tip_pge.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/pevent/src/pevent-tip_pgd-mmap-tsc-tip_pge.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/pevent/src/pevent-tip_pgd-switch-tsc-tip_pge.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/pevent/src/pevent-tip_pgd-switch_cpu_wide-tsc-tip_pge.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/pevent/src/pevent-warn.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/apl11.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/apl12-psb.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/apl12-tip_pge.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/bad_cpu.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/bdm64-tip-xabort.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/bdm64-tnt-cond-xabort.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/bdm64-tnt-ind_call-xabort.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/bdm70-psb_fup-tip_pge.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/bdm70-tip_pgd-psb_fup-tip_pge.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/call_direct-ret_compressed-pic.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/call_direct-ret_compressed.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/call_direct-ret_uncompressed.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/call_indirect-ret_compressed.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/call_indirect-ret_uncompressed.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/call_indirect_deferred-ret_compressed.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/cbr-cyc.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/cbr-mtc-cyc-mtc.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/cbr-tsc-cyc-tma.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/cbr-tsc-tma-mtc-cyc.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/direct_call-tip_pgd_noip-syscall.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/direct_jump-tip_pgd_noip-far_call.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/dump-all-packets.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/exstop_ip-tip_pgd.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/fup-pip-vmcs-tip.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/fup-pip-vmcs-tip_pgd.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/fup-tip-eos.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/fup-tip-fup-tip_pgd.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/fup-tip.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/fup-tip_pgd-stop.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/fup-tip_pgd-tip_pge.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/fup-tip_pgd-tip_pge_other_ip.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/fup-tip_pgd.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/fup-tip_pgd_noip.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/int-iret-cpl_0.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/int-iret-cpl_3.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/int-iret.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/linear-fup-tip_pgd.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/linear-tip.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/loop-tnt-64.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/loop-tnt-tnt.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/loop-tnt.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/mode_exec-tip.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/mtc-cyc_calibrate.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/mtc.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/mwait-pwre-exstop_ip-fup-ovf.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/mwait-pwre-exstop_ip-ovf.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/mwait-pwre-exstop_ip-pwrx.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/ovf-fup.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/ovf-mnt-fup.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/ovf-mnt-tip_pge.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/ovf-pwre-pwrx-tip_pge.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/ovf-timing-fup.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/ovf-timing-tip_pge.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/ovf-tip_pge.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/ovf.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/pip-far_call.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/pip-pip_mov_cr3-fail.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/pip-vmcs-tip_pgd.ptt (contents, props changed) vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/pip_mov_cr3-pip_mov_cr3.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/psb-empty.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/psb-exstop.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/psb-fup-psbend.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/psb-fup-tip_pgd-stop.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/psb-fup-tip_pgd.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/psb-mnt-fup-psbend.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/psb-mnt-psbend.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/psb-ovf-fup.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/psb-ovf-tip_pge.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/psb-pip-psb.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/psb-pip-tip_pge.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/psb-psb.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/psb-stop.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/psb-tnt-psb.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/psb-tsx.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/psb-tsx_abort-tip-fup-tip_pgd.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/psb-tsx_abort-tip_pgd.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/psb-tsx_abort.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/psb-vmcs.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/psb_nofup-psb.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/ptdump-exec-mode.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/ptdump-last-ip.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/ptdump-no-offset-raw.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/ptdump-no-offset.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/ptw-fup.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/ptw.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/ptxed-block-stat.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/ptxed-block-stat_blocks.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/ptxed-end_on_call-fup-tip.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/ptxed-end_on_call-fup-tip_pgd.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/ptxed-end_on_call-ret_tip.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/ptxed-end_on_call-ret_tnt.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/ptxed-end_on_call-tip_pgd.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/ptxed-end_on_jump-fup-tip_pgd.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/ptxed-insn-stat.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/ptxed-stat_insn.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/ptxed-tick.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/pwre-exstop_ip-pwrx.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/ret_near_far.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/skd007.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/skd010-mode_tsx-fup.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/skd010-psb.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/skd010-tip.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/skd010-tip_pgd.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/skd022.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/skl014-call.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/skl014-jmp-jmp.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/skl014-jmp.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/skl014-no_filter.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/syscall-sysret-cpl_0.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/syscall-sysret-cpl_3.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/syscall-sysret.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/sysenter-sysexit-cpl_0.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/sysenter-sysexit-cpl_3.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/sysenter-sysexit.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tip-eos.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tip_pgd-direct_call.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tip_pgd-direct_jump.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tip_pgd-exstop-tip_pge.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tip_pgd-indirect_call.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tip_pgd-indirect_jump.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tip_pgd-pip-tip_pge.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tip_pgd-psb-stop.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tip_pgd-stop.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tip_pgd-tnt_not_taken.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tip_pgd-tnt_taken.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tip_pgd-tsx.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tip_pgd_noip-far_jump.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tip_pgd_noip-mov_cr3.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tip_pge-exstop.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tip_pge-fup-tip_pgd-tip_pge.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tip_pge-fup-tip_pgd.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tip_pge-ptw-fup-tip_pgd.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tip_pge-ptw-tip_pgd.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tip_pge-pwre-pwrx-tip_pgd.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tip_pge-tsx_abort-tip-fup-tip_pgd.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tip_pge-tsx_abort-tip_pgd.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tnt-tip_pgd_noip-sysret.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tnt_n-eos.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tnt_t-eos.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/truncated.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tsc-cbr-cyc-tsc.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tsc-cyc_calibrate.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tsc-mtc-tma-mtc.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tsc-tma-cbr-cyc-mtc.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tsc-tma-cbr-cyc.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tsc-tma-cbr-mtc-cyc-mtc.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tsc-tma-cbr-mtc-cyc-no_cyc.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tsc-tma-cbr-mtc-cyc-tsc.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tsc-tma-cbr-mtc-cyc.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tsc-tma-cbr-mtc-cyc_calibrate.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tsc-tma-cbr-mtc-mtc-cyc.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tsc-tma-cyc.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tsc-tma-mtc-cyc_calibrate.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tsc-tma-mtc-mtc-cyc_calibrate.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tsc-tma-mtc-tsc.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tsc-tma-mtc_absolute.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tsc-tma-mtc_infreq.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tsc-tma-mtc_infreq_wrap.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tsc-tma-mtc_relative.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tsc-tma-mtc_wrap.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tsc-tma_zero_fc-cbr-cyc.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tsc_tma_mtc_gap.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tsx-abort.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tsx-commit.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/tsx-no_spurious_commit.ptt vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/test/src/vmcs-far_call.ptt Added: vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/.gitignore ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/.gitignore Mon Mar 19 18:34:08 2018 (r331218) @@ -0,0 +1,7 @@ +*.lst +*.bin +*.pt +*.sb +*.exp +*.out +*.diff Added: vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/CMakeLists.txt ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/CMakeLists.txt Mon Mar 19 18:34:08 2018 (r331218) @@ -0,0 +1,304 @@ +# Copyright (c) 2013-2018, Intel Corporation +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# * Redistributions of source code must retain the above copyright notice, +# this list of conditions and the following disclaimer. +# * 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. +# * Neither the name of Intel Corporation nor the names of its contributors +# may be used to endorse or promote products derived from this software +# without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT OWNER 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. + +cmake_minimum_required(VERSION 2.8.6) + +project(PT C) + +# versioning +# +# the major and the minor number define the supported Intel PT set. +# +# a build number and a version extension can be optionally specified. +# +set(PT_VERSION_MAJOR 1) +set(PT_VERSION_MINOR 6) +set(PT_VERSION_BUILD "0" CACHE STRING "") +set(PT_VERSION_EXT "" CACHE STRING "") + +set(PT_VERSION "${PT_VERSION_MAJOR}.${PT_VERSION_MINOR}.${PT_VERSION_BUILD}") + +add_definitions( + -DPT_VERSION_MAJOR=${PT_VERSION_MAJOR} + -DPT_VERSION_MINOR=${PT_VERSION_MINOR} + -DPT_VERSION_BUILD=${PT_VERSION_BUILD} + -DPT_VERSION_EXT=\"${PT_VERSION_EXT}\" +) + +include(GNUInstallDirs) +include(FindUnixCommands) +include(CheckCCompilerFlag) + +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) +set(MAN_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/man) + +set(CMAKE_COLOR_MAKEFILE OFF) +set(CMAKE_VERBOSE_MAKEFILE ON) + +set(CMAKE_MACOSX_RPATH ON) + +option(FEATURE_THREADS "A small amount of multi-threading support." ON) +if (FEATURE_THREADS) + add_definitions(-DFEATURE_THREADS) +endif (FEATURE_THREADS) + +option(DEVBUILD "Enable compiler warnings and turn them into errors." OFF) + +option(PTDUMP "Enable ptdump, a packet dumper") +option(PTXED "Enable ptxed, an instruction flow dumper") +option(PTTC "Enable pttc, a test compiler") +option(PTUNIT "Enable ptunit, a unit test system and libipt unit tests") +option(MAN "Enable man pages (requires pandoc)." OFF) +option(SIDEBAND "Enable libipt-sb, a sideband correlation library") + +if (SIDEBAND) + option(PEVENT "Enable perf_event sideband support." OFF) +endif (SIDEBAND) + +if (PTXED OR PEVENT) + option(FEATURE_ELF "Support ELF files." OFF) +endif (PTXED OR PEVENT) + +set(PTT OFF) +if (BASH AND PTDUMP AND PTXED AND PTTC) + set(PTT ON) +endif () + +if (PTUNIT OR PTT) + ENABLE_TESTING() +endif() + +if (PTUNIT) + enable_language(CXX) +endif() + +include_directories( + include + ${CMAKE_CURRENT_BINARY_DIR}/libipt/include +) + +if (PTUNIT) + include_directories( + ptunit/include + ) +endif (PTUNIT) + +if (FEATURE_ELF) + add_definitions( + -DFEATURE_ELF + ) +endif (FEATURE_ELF) + +if (SIDEBAND) + add_definitions( + -DFEATURE_SIDEBAND + ) + + include_directories( + ${CMAKE_CURRENT_BINARY_DIR}/sideband/include + ) +endif (SIDEBAND) + +if (PEVENT) + add_definitions( + -DFEATURE_PEVENT + ) + + include_directories( + pevent/include + ) +endif (PEVENT) + + +function(add_cflag_if_available option) + + check_c_compiler_flag(${option} ${option}_supported) + if (${option}_supported) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${option}" PARENT_SCOPE) + endif (${option}_supported) + +endfunction(add_cflag_if_available) + + +if (CMAKE_HOST_WIN32) + include_directories( + include/windows + ) + + add_definitions( + # cl spells inline __inline in C + # + /Dinline=__inline + + # cl spells strtoll _strtoi64 + # + /Dstrtoll=_strtoi64 + + # cl spells strtoull _strtoui64 + # + /Dstrtoull=_strtoui64 + + # avoid annoying warnings about unsecure standard functions + # + /D_CRT_SECURE_NO_WARNINGS + ) + + # enable parallel build + # + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /MP") + + if (DEVBUILD) + # compiler warnings + # + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /W4") + + # warnings are errors + # + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /WX") + endif (DEVBUILD) + + if (CMAKE_C_COMPILER_ID MATCHES "MSVC") + # prevent complaints on: + # - do {} while(0) constructs + # - int arr[] constructs + # + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4127") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /wd4200") + + endif (CMAKE_C_COMPILER_ID MATCHES "MSVC") + +endif (CMAKE_HOST_WIN32) + +if (CMAKE_HOST_UNIX) + include_directories( + include/posix + ) + + add_definitions( + -D_POSIX_C_SOURCE=200809L + ) + + option(GCOV "Compile for GNU code coverage analysis." OFF) + + if (GCOV) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ftest-coverage") + + link_libraries(gcov) + endif (GCOV) + + if (FEATURE_THREADS) + link_libraries(pthread) + endif (FEATURE_THREADS) + + # set the language + # + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99") + + # windows-like dll export model + # + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fvisibility=hidden") + + if (DEVBUILD) + # compiler warnings + # + if (CMAKE_C_COMPILER_ID MATCHES "[Cc]lang") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Weverything") + + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-disabled-macro-expansion") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-covered-switch-default") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-sign-conversion") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-switch-enum") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-cast-align") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-padded") + else (CMAKE_C_COMPILER_ID MATCHES "[Cc]lang") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wextra") + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -pedantic") + + add_cflag_if_available("-Wimplicit-fallthrough=5") + endif (CMAKE_C_COMPILER_ID MATCHES "[Cc]lang") + + # warnings are errors + # + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror") + endif (DEVBUILD) + +endif (CMAKE_HOST_UNIX) + + +function(add_ptunit_test_base name) + if (PTUNIT) + add_executable(${name} ${ARGN}) + target_link_libraries(${name} ptunit) + + add_test(NAME ${name} COMMAND ${name}) + endif (PTUNIT) +endfunction(add_ptunit_test_base) + +function(add_ptunit_c_test name) + add_ptunit_test_base(ptunit-${name} test/src/ptunit-${name}.c ${ARGN}) +endfunction(add_ptunit_c_test) + +function(add_ptunit_cpp_test name) + add_ptunit_test_base(ptunit-${name} test/src/ptunit-${name}.cpp ${ARGN}) +endfunction(add_ptunit_cpp_test) + +function(add_ptunit_libraries name) + if (PTUNIT) + target_link_libraries(ptunit-${name} ${ARGN}) + endif (PTUNIT) +endfunction(add_ptunit_libraries) + + +add_subdirectory(libipt) + +if (PTDUMP) + add_subdirectory(ptdump) +endif (PTDUMP) +if (PTXED) + add_subdirectory(ptxed) +endif (PTXED) +if (PTTC) + add_subdirectory(pttc) +endif (PTTC) +if (PTUNIT) + add_subdirectory(ptunit) +endif (PTUNIT) +if (PTT) + add_subdirectory(test) +endif (PTT) +if (MAN) + add_subdirectory(doc/man) +endif (MAN) +if (SIDEBAND) + add_subdirectory(sideband) +endif (SIDEBAND) +if (PEVENT) + add_subdirectory(pevent) +endif (PEVENT) Added: vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/CONTRIBUTING ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/CONTRIBUTING Mon Mar 19 18:34:08 2018 (r331218) @@ -0,0 +1,107 @@ +Contributing to this Project +============================ + +## License + +This project is licensed under the terms and conditions of the 3-Clause BSD +[LICENSE](LICENSE). By contributing to this project, you agree that you are +providing your contribution under the terms and conditions of that license. + + +## Patches + +We accept patches to this project as pull requests on GitHub. When submitting +patches, please keep each patch self-contained and as small as possible. Please +address one topic per patch series. Intermediate patches must build without +errors (with DEVBUILD=ON) and not introduce test fails. Please describe what +each patch is doing in its commit message. + +If you are contributing a patch series that addresses a GitHub Issue, the last +patch in the series should have 'fixes #' in its commit-message. + +If the patch series addresses a bug that is not tracked, please provide a +detailed description of the issue in the commit-message, ideally with a +description of the 'before' and 'after' behavior. + +The patch series should contain regression tests either as PTT tests or as +ptunit tests. Please make sure that all tests are passing. This may require +re-ordering patches to introduce the regression test after the issue was fixed. + +If the patch series adds a new feature, please make sure to add documentation. +Prior to submitting this type of contribution, it may be a good idea to first +discuss the feature as a GitHub issue or via email before implementing it. + +This project is using the Linux coding style. + + +## Sign Your Patch + +Please use the sign-off line at the end of each patch. Your signature +certifies that you wrote the patch or otherwise have the right to pass +it on as an open-source patch. The rules are pretty simple: if you can +certify the below (from +[developercertificate.org](http://developercertificate.org/)): + +``` +Developer Certificate of Origin +Version 1.1 + +Copyright (C) 2004, 2006 The Linux Foundation and its contributors. +660 York Street, Suite 102, +San Francisco, CA 94110 USA + +Everyone is permitted to copy and distribute verbatim copies of this +license document, but changing it is not allowed. + +Developer's Certificate of Origin 1.1 + +By making a contribution to this project, I certify that: + +(a) The contribution was created in whole or in part by me and I + have the right to submit it under the open source license + indicated in the file; or + +(b) The contribution is based upon previous work that, to the best + of my knowledge, is covered under an appropriate open source + license and I have the right under that license to submit that + work with modifications, whether created in whole or in part + by me, under the same open source license (unless I am + permitted to submit under a different license), as indicated + in the file; or + +(c) The contribution was provided directly to me by some other + person who certified (a), (b) or (c) and I have not modified + it. + +(d) I understand and agree that this project and the contribution + are public and that a record of the contribution (including all + personal information I submit with it, including my sign-off) is + maintained indefinitely and may be redistributed consistent with + this project or the open source license(s) involved. +``` + +Then you just add a line to every git commit message: + + Signed-off-by: Joe Smith + +Use your real name (sorry, no pseudonyms or anonymous contributions.) + +If you set your `user.name` and `user.email` git configs, you can sign your +commit automatically with `git commit -s`. + + +## Reporting Issues + +If you want to report an issue or bug, please report them via the GitHub Issues +tracker. + +When reporting a bug, please provide the steps to reproduce it with the ptdump +and ptxed tools contained in the tree. Please include the command-line that was +used and the exact error message. You may also attach a trace file and the +binaries necessary for reproducing the issue or write a small PTT test to +demonstrate the issue. + +When providing trace snippets, please provide a few extra packets of context. + +Please also provide the processor family and model on which the trace was +recorded and the version of the decoder that was used to decode the trace. Added: vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/LICENSE ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/LICENSE Mon Mar 19 18:34:08 2018 (r331218) @@ -0,0 +1,24 @@ +Copyright (c) 2013-2018, Intel Corporation + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + * Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + * 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. + * Neither the name of Intel Corporation nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS 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 COPYRIGHT OWNER 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. Added: vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/README ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/README Mon Mar 19 18:34:08 2018 (r331218) @@ -0,0 +1,79 @@ +Intel(R) Processor Trace Decoder Library +======================================== + +The Intel Processor Trace (Intel PT) Decoder Library is Intel's reference +implementation for decoding Intel PT. It can be used as a standalone library or +it can be partially or fully integrated into your tool. + +The library comes with a set of sample tools built on top of it and a test +system built on top of the sample tools. The samples demonstrate how to use the +library and may serve as a starting point for integrating the library into your +tool. + +Go to https://software.intel.com/en-us/intel-platform-analysis-library for +support of upcoming (non-public) processors (NDA required). + + +Contents +-------- + + README this file + + libipt A packet encoder/decoder library + + +Optional Contents and Samples +----------------------------- + + ptdump Example implementation of a packet dumper + + ptxed Example implementation of a trace disassembler + + pttc A trace test generator + + ptunit A simple unit test system + + sideband A sideband correlation library + + pevent A library for reading/writing Linux perf event records + + script A collection of scripts + + test A collection of tests + + include A collection of substitute headers + + doc A document describing the build + A document describing how to get started + A document describing the usage of the decoder library + A document describing how to capture trace + A document describing pttc + + doc/man Man pages for the encoder/decoder library + + +Dependencies +------------ + +We use cmake for building. + + cmake The cross-platform open-source build system. + http://www.cmake.org + + +Other packages you need for some of the above optional components. + + xed The Intel x86 instruction encoder and decoder. + https://github.com/intelxed/xed + + This is needed to build and run ptxed. + + yasm The Yasm Modular Assembler + http://github.com/yasm + + This is needed to run pttc. + + pandoc A universal document converter + http://pandoc.org + + This is needed for man pages. Added: vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/getting_started.md ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/getting_started.md Mon Mar 19 18:34:08 2018 (r331218) @@ -0,0 +1,93 @@ +Getting Started {#start} +======================== + + + +This chapter gives a brief introduction into the sample tools using one of the +tests as example. It assumes that you are already familiar with Intel(R) +Processor Trace (Intel PT) and that you already built the decoder library and +the sample tools. For detailed information about Intel PT, please refer to +chapter 11 of the Intel Architecture Instruction Set Extensions Programming +Reference at http://www.intel.com/products/processor/manuals/. + +Start by compiling the loop-tnt test. It consists of a small assembly program +with interleaved Intel PT directives: + + $ pttc test/src/loop-tnt.ptt + loop-tnt-ptxed.exp + loop-tnt-ptdump.exp + +This produces the following output files: + + loop-tnt.lst a yasm assembly listing file + loop-tnt.bin a raw binary file + loop-tnt.pt a Intel PT file + loop-tnt-ptxed.exp the expected ptxed output + loop-tnt-ptdump.exp the expected ptdump output + +The latter two files are generated based on the `@pt .exp()` directives +found in the `.ptt` file. They are used for automated testing. See +script/test.bash for details on that. + + +Use `ptdump` to dump the Intel PT packets: + + $ ptdump loop-tnt.pt + 0000000000000000 psb + 0000000000000010 fup 3: 0x0000000000100000, ip=0x0000000000100000 + 0000000000000017 mode.exec cs.d=0, cs.l=1 (64-bit mode) + 0000000000000019 psbend + 000000000000001b tnt8 !!. + 000000000000001c tip.pgd 3: 0x0000000000100013, ip=0x0000000000100013 + +The ptdump tool takes an Intel PT file as input and dumps the packets in +human-readable form. The number on the very left is the offset into the Intel +PT packet stream in hex. This is followed by the packet opcode and payload. + + +Use `ptxed` for reconstructing the execution flow. For this, you need the Intel +PT file as well as the corresponding binary image. You need to specify the load +address given by the org directive in the .ptt file when using a raw binary +file. + + $ ptxed --pt loop-tnt.pt --raw loop-tnt.bin:0x100000 + 0x0000000000100000 mov rax, 0x0 + 0x0000000000100007 jmp 0x10000d + 0x000000000010000d cmp rax, 0x1 + 0x0000000000100011 jle 0x100009 + 0x0000000000100009 add rax, 0x1 + 0x000000000010000d cmp rax, 0x1 + 0x0000000000100011 jle 0x100009 + 0x0000000000100009 add rax, 0x1 + 0x000000000010000d cmp rax, 0x1 + 0x0000000000100011 jle 0x100009 + [disabled] + +Ptxed prints disassembled instructions in execution order as well as status +messages enclosed in brackets. Added: vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/howto_build.md ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/howto_build.md Mon Mar 19 18:34:08 2018 (r331218) @@ -0,0 +1,197 @@ +Building the Intel(R) Processor Trace (Intel PT) Decoder Library and Samples {#build} +============================================================================ + + + +This chapter gives step-by-step instructions for building the library and the +sample tools using cmake. For detailed information on cmake, see +http://www.cmake.org. + + +## Configuration + +Besides the standard cmake options of build type and install directory, you will +find project-specific options for enabling optional features, optional +components, or optional build variants. + + +### Optional Components + +By default, only the decoder library is built. Other components can be enabled +by setting the respective cmake variable to ON. + +The following optional components are availble: + + PTUNIT A simple unit test framework. + A collection of unit tests for libipt. + + PTDUMP A packet dumper example. + + PTXED A trace disassembler example. + + PTTC A trace test generator. + + SIDEBAND A sideband correlation library + + PEVENT Support for the Linux perf_event sideband format. + + This feature requires the linux/perf_event.h header. + + +### Optional Features + +Features are enabled by setting the respective FEATURE_ cmake variable. +This causes the FEATURE_ pre-processor macro to be defined and may also +cause additional source files to be compiled and additional libraries to be +linked. + +Features are enabled globally and will be used by all components that support +the feature. The following features are supported: + + FEATURE_ELF Support for the ELF object format. + + This feature requires the elf.h header. + + + FEATURE_THREADS Support some amount of multi-threading. + + This feature makes image functions thread-safe. + + +### Build Variants + +Some build variants depend on libraries or header files that may not be +available on all supported platforms. + + GCOV Support for code coverage using libgcov. + + This build variant requires libgcov and is not availble + on Windows. + + + DEVBUILD Enable compiler warnings and turn them into errors. + + +### Version Settings + +The major and minor version numbers are set in the sources and must be changed +there. You can set the build number and an arbitrary extension string. +build. + + PT_VERSION_BUILD The build number. + + Defaults to zero. + + + PT_VERSION_EXT An arbitrary version extension string. + + Defaults to the empty string. + + +### Dependencies + +In order to build ptxed, the location of the XED library and the XED header +files must be specified. + + XED_INCLUDE Path to the directory containing the XED header files. + + XED_LIBDIR Path to the directory containing the XED library. + + +When using XED from a PIN distribution, the respective directories are located +in `extras/xed2-/`. + + +## Building on Linux``*`` and OS X``*`` + +We recommend out-of-tree builds. Start by creating the destination directory +and navigating into it: + + $ mkdir -p /path/to/dest + $ cd /path/to/dest + + +From here, call cmake with the top-level source directory as argument. You may +already pass some or all of the cmake variables as arguments to cmake. Without +arguments, cmake uses default values. + + $ cmake /path/to/src + + +If you have not passed values for XED_INCLUDE or XED_LIBDIR, you need to +configure them now if you want to build ptxed. You may also use this command to +change the configuration at any time later on. + + $ make edit_cache + + +After configuring the cmake cache, you can build either specific targets or +everything using one of: + + $ make + $ make + + +Use the help make target to learn about available make targets: + + $ make help + + + +## Building on Windows``*`` + +We recommend using the cmake GUI. After starting the cmake GUI, fill in the +following fields: + + Where is the source code: Path to the top-level source directory. + + Where to build the binaries: Path to the destination directory. + + +We recommend out-of-tree builds, so the build directory should not be the same +as or below the source directory. After this first configuration step, press +the + + Configure + +button and select the builder you want to use. + +Cmake will now populate the remainder of the window with configuration options. +Please make sure to specify at least XED_INCLUDE and XED_LIBDIR if you want to +build ptxed. After completing the configuration, press the + + Generate + +button. If you selected a Visual Studio generator in the first step, cmake will +now generate a Visual Studio solution. You can repeat this step if you want to +change the configuration later on. Beware that you always need to press the +Generate button after changing the configuration. + +In the case of a Visual Studio generator, you may now open the generated Visual +Studio solution and build the library and samples. Added: vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/howto_capture.md ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor/processor-trace/24982c1a6fce48f1e416461d42899805f74fbb26/doc/howto_capture.md Mon Mar 19 18:34:08 2018 (r331218) @@ -0,0 +1,628 @@ +Capturing Intel(R) Processor Trace (Intel PT) {#capture} +============================================= + + + +This chapter describes how to capture Intel PT for processing with libipt. For +illustration, we use the sample tools ptdump and ptxed. We assume that they are +configured with: + + * PEVENT=ON + * FEATURE_ELF=ON + + +## Capturing Intel PT on Linux + +Starting with version 4.1, the Linux kernel supports Intel PT via the perf_event +kernel interface. Starting with version 4.3, the perf user-space tool will +support Intel PT as well. + + +### Capturing Intel PT via Linux perf_event + +We start with setting up a perf_event_attr object for capturing Intel PT. The +structure is declared in `/usr/include/linux/perf_event.h`. + +The Intel PT PMU type is dynamic. Its value can be read from +`/sys/bus/event_source/devices/intel_pt/type`. + +~~~{.c} + struct perf_event_attr attr; + + memset(&attr, 0, sizeof(attr)); + attr.size = sizeof(attr); + attr.type = (); + + attr.exclude_kernel = 1; + ... +~~~ + + +Once all desired fields have been set, we can open a perf_event counter for +Intel PT. See `perf_event_open(2)` for details. In our example, we configure +it for tracing a single thread. + +The system call returns a file descriptor on success, `-1` otherwise. + +~~~{.c} + int fd; + + fd = syscall(SYS_perf_event_open, &attr, , -1, -1, 0); +~~~ + + +The Intel PT trace is captured in the AUX area, which has been introduced with +kernel 4.1. The DATA area contains sideband information such as image changes +that are necessary for decoding the trace. + +In theory, both areas can be configured as circular buffers or as linear buffers +by mapping them read-only or read-write, respectively. When configured as +circular buffer, new data will overwrite older data. When configured as linear +buffer, the user is expected to continuously read out the data and update the +buffer's tail pointer. New data that do not fit into the buffer will be +dropped. + +When using the AUX area, its size and offset have to be filled into the +`perf_event_mmap_page`, which is mapped together with the DATA area. This +requires the DATA area to be mapped read-write and hence configured as linear +buffer. In our example, we configure the AUX area as circular buffer. + +Note that the size of both the AUX and the DATA area has to be a power of two +pages. The DATA area needs one additional page to contain the +`perf_event_mmap_page`. + +~~~{.c} + struct perf_event_mmap_page *header; + void *base, *data, *aux; + + base = mmap(NULL, (1+2**n) * PAGE_SIZE, PROT_WRITE, MAP_SHARED, fd, 0); + if (base == MAP_FAILED) + return (); + + header = base; + data = base + header->data_offset; + + header->aux_offset = header->data_offset + header->data_size; + header->aux_size = (2**m) * PAGE_SIZE; + + aux = mmap(NULL, header->aux_size, PROT_READ, MAP_SHARED, fd, + header->aux_offset); + if (aux == MAP_FAILED) + return (); +~~~ + + +### Capturing Intel PT via the perf user-space tool + +Starting with kernel 4.3, the perf user-space tool can be used to capture Intel +PT with the `intel_pt` event. See tools/perf/Documentation in the Linux kernel +tree for further information. In this text, we describe how to use the captured +trace with the ptdump and ptxed sample tools. + +We start with capturing some Intel PT trace using the `intel_pt` event. Note +that when collecting system-wide (`-a`) trace, we need context switch events +(`--switch-events`) to decode the trace. See `perf-record(1)` for details. + +~~~{.sh} + $ perf record -e intel_pt//[uk] [--per-thread] [-a --switch-events] -T -- ls + [ perf record: Woken up 1 times to write data ] + [ perf record: Captured and wrote 0.384 MB perf.data ] +~~~ + + +This generates a file called `perf.data` that contains the Intel PT trace, the +sideband information, and some metadata. To process the trace with ptxed, we +extract the Intel PT trace into one file per thread or cpu. + +Looking at the raw trace dump of `perf script -D`, we notice +`PERF_RECORD_AUXTRACE` records. The raw Intel PT trace is contained directly +after such records. We can extract it with the `dd` command. The arguments to +`dd` can be computed from the record's fields. This can be done automatically, +for example with an AWK script. + +~~~{.awk} + /PERF_RECORD_AUXTRACE / { + offset = strtonum($1) + hsize = strtonum(substr($2, 2)) + size = strtonum($5) + idx = strtonum($11) + + ofile = sprintf("perf.data-aux-idx%d.bin", idx) + begin = offset + hsize + + cmd = sprintf("dd if=perf.data of=%s conv=notrunc oflag=append ibs=1 \ + skip=%d count=%d status=none", ofile, begin, size) + + system(cmd) + } +~~~ + *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-vendor@freebsd.org Mon Mar 19 19:43:54 2018 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 8833FF6734E; Mon, 19 Mar 2018 19:43:54 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from mail.baldwin.cx (bigwig.baldwin.cx [IPv6:2001:470:1f11:75::1]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 2DE5F8145E; Mon, 19 Mar 2018 19:43:54 +0000 (UTC) (envelope-from jhb@freebsd.org) Received: from ralph.baldwin.cx (ralph.baldwin.cx [66.234.199.215]) by mail.baldwin.cx (Postfix) with ESMTPSA id 2EA0410A87D; Mon, 19 Mar 2018 15:43:53 -0400 (EDT) From: John Baldwin To: Ruslan Bukin Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: Re: svn commit: r331218 - in vendor/processor-trace: . 24982c1a6fce48f1e416461d42899805f74fbb26 24982c1a6fce48f1e416461d42899805f74fbb26/doc 24982c1a6fce48f1e416461d42899805f74fbb26/doc/man 24982c1a6fc... Date: Mon, 19 Mar 2018 12:43:49 -0700 Message-ID: <1956273.kgoNNMadGV@ralph.baldwin.cx> User-Agent: KMail/4.14.10 (FreeBSD/11.1-STABLE; KDE/4.14.30; amd64; ; ) In-Reply-To: <201803191834.w2JIY8WH053697@repo.freebsd.org> References: <201803191834.w2JIY8WH053697@repo.freebsd.org> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.4.3 (mail.baldwin.cx); Mon, 19 Mar 2018 15:43:53 -0400 (EDT) X-Virus-Scanned: clamav-milter 0.99.2 at mail.baldwin.cx X-Virus-Status: Clean X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Mar 2018 19:43:54 -0000 On Monday, March 19, 2018 06:34:08 PM Ruslan Bukin wrote: > Author: br > Date: Mon Mar 19 18:34:08 2018 > New Revision: 331218 > URL: https://svnweb.freebsd.org/changeset/base/331218 > > Log: > Import Intel Processor Trace library. > > Git ID 24982c1a6fce48f1e416461d42899805f74fbb26 > > Sponsored by: DARPA, AFRL > Differential Revision: https://reviews.freebsd.org/D12815 Presumably you meant to import this to vendor/processor-trace/dist and then do an 'svn cp' to tag it to the git hash? If you do the svn cp from the git hash instead of from dist I'm not sure if future 'svn merge' requests from the vendor area will work correctly when you try to merge an update. -- John Baldwin From owner-svn-src-vendor@freebsd.org Tue Mar 20 15:54:44 2018 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 0D683F57F32 for ; Tue, 20 Mar 2018 15:54:44 +0000 (UTC) (envelope-from giffunip@yahoo.com) Received: from sonic312-20.consmr.mail.bf2.yahoo.com (sonic312-20.consmr.mail.bf2.yahoo.com [74.6.128.82]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id AA08A792F6 for ; Tue, 20 Mar 2018 15:54:43 +0000 (UTC) (envelope-from giffunip@yahoo.com) X-YMail-OSG: JvJz4DwVM1nsv80lE3LIsANSaYyfmbJkBfGX0KrPfnB.ge3Yi2tJWE8v9Tbsc0F MhApCGddFYXLt5vtdfASIpJO09Ym6jE0rssbjOHN4GW.H0oSng6VJr7ddTYMSVPl9Sc8XltS6Txy fUkYNXBwPNjVzJ4T.dyMgfsS.kZE42ZtvWqtGNIItt_IQB8KikgNG4zRcs20aEv3ISkkBIJcNTMW FpAiBToE3HXUCt1ZNC3kqlce_IhFXmbhauzEyLDv5pCsKdNz2MU2EM1mBGL.4gAlHVEnPsYnbPaO TH.itIHSGMzkcm.wLpnACg.nu24bPSbrIu73EcpWVSeDqZp7Ye6UHgFvaFZ511eJgRYLbypdvt7K onNnt8wZDCRHpgN7I6o7SVYs7j6jhRhcwXxr_N1V6l_uxAV4cD9fTTMljZGmZlMjIPDeKfg81jBL Jo8uM0AAk5uWYYG1QQ.yslauvE8LYhG4RE4lNuINrV0wZfDeRK8t7l4HXj0LCoZnyxbrSriGEqA9 zYY_pHrBPI88fgYFeMgjM9FRB4F8xPzlsTS1DCzk- Received: from sonic.gate.mail.ne1.yahoo.com by sonic312.consmr.mail.bf2.yahoo.com with HTTP; Tue, 20 Mar 2018 15:54:37 +0000 Received: from 181.52.72.201 (EHLO [192.168.0.4]) ([181.52.72.201]) by smtp425.mail.bf1.yahoo.com (Oath Hermes SMTP Server) with ESMTPA ID 5ddeb1f8a02938b1868d1a6096f738cd; Tue, 20 Mar 2018 15:54:35 +0000 (UTC) Subject: Re: svn commit: r331218 - in vendor/processor-trace: . 24982c1a6fce48f1e416461d42899805f74fbb26 24982c1a6fce48f1e416461d42899805f74fbb26/doc 24982c1a6fce48f1e416461d42899805f74fbb26/doc/man 24982c1a6fc... To: John Baldwin , Ruslan Bukin Cc: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org References: <201803191834.w2JIY8WH053697@repo.freebsd.org> <1956273.kgoNNMadGV@ralph.baldwin.cx> From: Pedro Giffuni Message-ID: Date: Tue, 20 Mar 2018 10:54:33 -0500 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 In-Reply-To: <1956273.kgoNNMadGV@ralph.baldwin.cx> Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 20 Mar 2018 15:54:44 -0000 On 19/03/2018 14:43, John Baldwin wrote: > On Monday, March 19, 2018 06:34:08 PM Ruslan Bukin wrote: >> Author: br >> Date: Mon Mar 19 18:34:08 2018 >> New Revision: 331218 >> URL: https://svnweb.freebsd.org/changeset/base/331218 >> >> Log: >> Import Intel Processor Trace library. >> >> Git ID 24982c1a6fce48f1e416461d42899805f74fbb26 >> >> Sponsored by: DARPA, AFRL >> Differential Revision: https://reviews.freebsd.org/D12815 > Presumably you meant to import this to vendor/processor-trace/dist and then do an 'svn cp' > to tag it to the git hash? If you do the svn cp from the git hash instead of from dist > I'm not sure if future 'svn merge' requests from the vendor area will work correctly when > you try to merge an update. > The git hash makes a terrible tag. I'd prefer we use snapshot/release dates. Pedro. From owner-svn-src-vendor@freebsd.org Fri Mar 23 00:20:44 2018 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id D46DDF57870; Fri, 23 Mar 2018 00:20:43 +0000 (UTC) (envelope-from mav@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 805A774FC1; Fri, 23 Mar 2018 00:20:43 +0000 (UTC) (envelope-from mav@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 7AD7A1870D; Fri, 23 Mar 2018 00:20:43 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2N0Kho9013579; Fri, 23 Mar 2018 00:20:43 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2N0Kgss012204; Fri, 23 Mar 2018 00:20:42 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201803230020.w2N0Kgss012204@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 23 Mar 2018 00:20:42 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r331400 - in vendor-sys/illumos/dist/uts/common: . fs/zfs fs/zfs/sys X-SVN-Group: vendor-sys X-SVN-Commit-Author: mav X-SVN-Commit-Paths: in vendor-sys/illumos/dist/uts/common: . fs/zfs fs/zfs/sys X-SVN-Commit-Revision: 331400 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 Mar 2018 00:20:44 -0000 Author: mav Date: Fri Mar 23 00:20:42 2018 New Revision: 331400 URL: https://svnweb.freebsd.org/changeset/base/331400 Log: 8484 Implement aggregate sum and use for arc counters In pursuit of improving performance on multi-core systems, we should implements fanned out counters and use them to improve the performance of some of the arc statistics. These stats are updated extremely frequently, and can consume a significant amount of CPU time. Reviewed by: Pavel Zakharov Reviewed by: Matthew Ahrens Approved by: Dan McDonald Author: Paul Dagnelie Added: vendor-sys/illumos/dist/uts/common/fs/zfs/THIRDPARTYLICENSE.cityhash (contents, props changed) vendor-sys/illumos/dist/uts/common/fs/zfs/THIRDPARTYLICENSE.cityhash.descrip (contents, props changed) vendor-sys/illumos/dist/uts/common/fs/zfs/aggsum.c (contents, props changed) vendor-sys/illumos/dist/uts/common/fs/zfs/cityhash.c (contents, props changed) vendor-sys/illumos/dist/uts/common/fs/zfs/sys/aggsum.h (contents, props changed) vendor-sys/illumos/dist/uts/common/fs/zfs/sys/cityhash.h (contents, props changed) Modified: vendor-sys/illumos/dist/uts/common/Makefile.files vendor-sys/illumos/dist/uts/common/fs/zfs/arc.c vendor-sys/illumos/dist/uts/common/fs/zfs/dbuf.c Modified: vendor-sys/illumos/dist/uts/common/Makefile.files ============================================================================== --- vendor-sys/illumos/dist/uts/common/Makefile.files Thu Mar 22 23:58:05 2018 (r331399) +++ vendor-sys/illumos/dist/uts/common/Makefile.files Fri Mar 23 00:20:42 2018 (r331400) @@ -1339,12 +1339,14 @@ LUA_OBJS += \ ZFS_COMMON_OBJS += \ abd.o \ + aggsum.o \ arc.o \ blkptr.o \ bplist.o \ bpobj.o \ bptree.o \ bqueue.o \ + cityhash.o \ dbuf.o \ ddt.o \ ddt_zap.o \ Added: vendor-sys/illumos/dist/uts/common/fs/zfs/THIRDPARTYLICENSE.cityhash ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor-sys/illumos/dist/uts/common/fs/zfs/THIRDPARTYLICENSE.cityhash Fri Mar 23 00:20:42 2018 (r331400) @@ -0,0 +1,19 @@ +Copyright (c) 2011 Google, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. Added: vendor-sys/illumos/dist/uts/common/fs/zfs/THIRDPARTYLICENSE.cityhash.descrip ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor-sys/illumos/dist/uts/common/fs/zfs/THIRDPARTYLICENSE.cityhash.descrip Fri Mar 23 00:20:42 2018 (r331400) @@ -0,0 +1 @@ +CITYHASH CHECKSUM FUNCTIONALITY IN ZFS Added: vendor-sys/illumos/dist/uts/common/fs/zfs/aggsum.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor-sys/illumos/dist/uts/common/fs/zfs/aggsum.c Fri Mar 23 00:20:42 2018 (r331400) @@ -0,0 +1,232 @@ +/* + * CDDL HEADER START + * + * This file and its contents are supplied under the terms of the + * Common Development and Distribution License ("CDDL"), version 1.0. + * You may only use this file in accordance with the terms of version + * 1.0 of the CDDL. + * + * A full copy of the text of the CDDL should have accompanied this + * source. A copy of the CDDL is also available via the Internet at + * http://www.illumos.org/license/CDDL. + * + * CDDL HEADER END + */ +/* + * Copyright (c) 2017 by Delphix. All rights reserved. + */ + +#include +#include + +/* + * Aggregate-sum counters are a form of fanned-out counter, used when atomic + * instructions on a single field cause enough CPU cache line contention to + * slow system performance. Due to their increased overhead and the expense + * involved with precisely reading from them, they should only be used in cases + * where the write rate (increment/decrement) is much higher than the read rate + * (get value). + * + * Aggregate sum counters are comprised of two basic parts, the core and the + * buckets. The core counter contains a lock for the entire counter, as well + * as the current upper and lower bounds on the value of the counter. The + * aggsum_bucket structure contains a per-bucket lock to protect the contents of + * the bucket, the current amount that this bucket has changed from the global + * counter (called the delta), and the amount of increment and decrement we have + * "borrowed" from the core counter. + * + * The basic operation of an aggsum is simple. Threads that wish to modify the + * counter will modify one bucket's counter (determined by their current CPU, to + * help minimize lock and cache contention). If the bucket already has + * sufficient capacity borrowed from the core structure to handle their request, + * they simply modify the delta and return. If the bucket does not, we clear + * the bucket's current state (to prevent the borrowed amounts from getting too + * large), and borrow more from the core counter. Borrowing is done by adding to + * the upper bound (or subtracting from the lower bound) of the core counter, + * and setting the borrow value for the bucket to the amount added (or + * subtracted). Clearing the bucket is the opposite; we add the current delta + * to both the lower and upper bounds of the core counter, subtract the borrowed + * incremental from the upper bound, and add the borrowed decrement from the + * lower bound. Note that only borrowing and clearing require access to the + * core counter; since all other operations access CPU-local resources, + * performance can be much higher than a traditional counter. + * + * Threads that wish to read from the counter have a slightly more challenging + * task. It is fast to determine the upper and lower bounds of the aggum; this + * does not require grabbing any locks. This suffices for cases where an + * approximation of the aggsum's value is acceptable. However, if one needs to + * know whether some specific value is above or below the current value in the + * aggsum, they invoke aggsum_compare(). This function operates by repeatedly + * comparing the target value to the upper and lower bounds of the aggsum, and + * then clearing a bucket. This proceeds until the target is outside of the + * upper and lower bounds and we return a response, or the last bucket has been + * cleared and we know that the target is equal to the aggsum's value. Finally, + * the most expensive operation is determining the precise value of the aggsum. + * To do this, we clear every bucket and then return the upper bound (which must + * be equal to the lower bound). What makes aggsum_compare() and aggsum_value() + * expensive is clearing buckets. This involves grabbing the global lock + * (serializing against themselves and borrow operations), grabbing a bucket's + * lock (preventing threads on those CPUs from modifying their delta), and + * zeroing out the borrowed value (forcing that thread to borrow on its next + * request, which will also be expensive). This is what makes aggsums well + * suited for write-many read-rarely operations. + */ + +/* + * We will borrow aggsum_borrow_multiplier times the current request, so we will + * have to get the as_lock approximately every aggsum_borrow_multiplier calls to + * aggsum_delta(). + */ +static uint_t aggsum_borrow_multiplier = 10; + +void +aggsum_init(aggsum_t *as, uint64_t value) +{ + bzero(as, sizeof (*as)); + as->as_lower_bound = as->as_upper_bound = value; + mutex_init(&as->as_lock, NULL, MUTEX_DEFAULT, NULL); + as->as_numbuckets = boot_ncpus; + as->as_buckets = kmem_zalloc(boot_ncpus * sizeof (aggsum_bucket_t), + KM_SLEEP); + for (int i = 0; i < as->as_numbuckets; i++) { + mutex_init(&as->as_buckets[i].asc_lock, + NULL, MUTEX_DEFAULT, NULL); + } +} + +void +aggsum_fini(aggsum_t *as) +{ + for (int i = 0; i < as->as_numbuckets; i++) + mutex_destroy(&as->as_buckets[i].asc_lock); + mutex_destroy(&as->as_lock); +} + +int64_t +aggsum_lower_bound(aggsum_t *as) +{ + return (as->as_lower_bound); +} + +int64_t +aggsum_upper_bound(aggsum_t *as) +{ + return (as->as_upper_bound); +} + +static void +aggsum_flush_bucket(aggsum_t *as, struct aggsum_bucket *asb) +{ + ASSERT(MUTEX_HELD(&as->as_lock)); + ASSERT(MUTEX_HELD(&asb->asc_lock)); + + /* + * We use atomic instructions for this because we read the upper and + * lower bounds without the lock, so we need stores to be atomic. + */ + atomic_add_64((volatile uint64_t *)&as->as_lower_bound, asb->asc_delta); + atomic_add_64((volatile uint64_t *)&as->as_upper_bound, asb->asc_delta); + asb->asc_delta = 0; + atomic_add_64((volatile uint64_t *)&as->as_upper_bound, + -asb->asc_borrowed); + atomic_add_64((volatile uint64_t *)&as->as_lower_bound, + asb->asc_borrowed); + asb->asc_borrowed = 0; +} + +uint64_t +aggsum_value(aggsum_t *as) +{ + int64_t rv; + + mutex_enter(&as->as_lock); + if (as->as_lower_bound == as->as_upper_bound) { + rv = as->as_lower_bound; + for (int i = 0; i < as->as_numbuckets; i++) { + ASSERT0(as->as_buckets[i].asc_delta); + ASSERT0(as->as_buckets[i].asc_borrowed); + } + mutex_exit(&as->as_lock); + return (rv); + } + for (int i = 0; i < as->as_numbuckets; i++) { + struct aggsum_bucket *asb = &as->as_buckets[i]; + mutex_enter(&asb->asc_lock); + aggsum_flush_bucket(as, asb); + mutex_exit(&asb->asc_lock); + } + VERIFY3U(as->as_lower_bound, ==, as->as_upper_bound); + rv = as->as_lower_bound; + mutex_exit(&as->as_lock); + + return (rv); +} + +static void +aggsum_borrow(aggsum_t *as, int64_t delta, struct aggsum_bucket *asb) +{ + int64_t abs_delta = (delta < 0 ? -delta : delta); + mutex_enter(&as->as_lock); + mutex_enter(&asb->asc_lock); + + aggsum_flush_bucket(as, asb); + + atomic_add_64((volatile uint64_t *)&as->as_upper_bound, abs_delta); + atomic_add_64((volatile uint64_t *)&as->as_lower_bound, -abs_delta); + asb->asc_borrowed = abs_delta; + + mutex_exit(&asb->asc_lock); + mutex_exit(&as->as_lock); +} + +void +aggsum_add(aggsum_t *as, int64_t delta) +{ + struct aggsum_bucket *asb = + &as->as_buckets[CPU_SEQID % as->as_numbuckets]; + + for (;;) { + mutex_enter(&asb->asc_lock); + if (asb->asc_delta + delta <= (int64_t)asb->asc_borrowed && + asb->asc_delta + delta >= -(int64_t)asb->asc_borrowed) { + asb->asc_delta += delta; + mutex_exit(&asb->asc_lock); + return; + } + mutex_exit(&asb->asc_lock); + aggsum_borrow(as, delta * aggsum_borrow_multiplier, asb); + } +} + +/* + * Compare the aggsum value to target efficiently. Returns -1 if the value + * represented by the aggsum is less than target, 1 if it's greater, and 0 if + * they are equal. + */ +int +aggsum_compare(aggsum_t *as, uint64_t target) +{ + if (as->as_upper_bound < target) + return (-1); + if (as->as_lower_bound > target) + return (1); + mutex_enter(&as->as_lock); + for (int i = 0; i < as->as_numbuckets; i++) { + struct aggsum_bucket *asb = &as->as_buckets[i]; + mutex_enter(&asb->asc_lock); + aggsum_flush_bucket(as, asb); + mutex_exit(&asb->asc_lock); + if (as->as_upper_bound < target) { + mutex_exit(&as->as_lock); + return (-1); + } + if (as->as_lower_bound > target) { + mutex_exit(&as->as_lock); + return (1); + } + } + VERIFY3U(as->as_lower_bound, ==, as->as_upper_bound); + ASSERT3U(as->as_lower_bound, ==, target); + mutex_exit(&as->as_lock); + return (0); +} Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/arc.c ============================================================================== --- vendor-sys/illumos/dist/uts/common/fs/zfs/arc.c Thu Mar 22 23:58:05 2018 (r331399) +++ vendor-sys/illumos/dist/uts/common/fs/zfs/arc.c Fri Mar 23 00:20:42 2018 (r331400) @@ -275,6 +275,8 @@ #include #include #include +#include +#include #ifndef _KERNEL /* set with ZFS_DEBUG=watch, to enable watchpoints on frozen buffers */ @@ -465,6 +467,7 @@ typedef struct arc_stats { kstat_named_t arcstat_c; kstat_named_t arcstat_c_min; kstat_named_t arcstat_c_max; + /* Not updated directly; only synced in arc_kstat_update. */ kstat_named_t arcstat_size; /* * Number of compressed bytes stored in the arc_buf_hdr_t's b_pabd. @@ -493,12 +496,14 @@ typedef struct arc_stats { * (allocated via arc_buf_hdr_t_full and arc_buf_hdr_t_l2only * caches), and arc_buf_t structures (allocated via arc_buf_t * cache). + * Not updated directly; only synced in arc_kstat_update. */ kstat_named_t arcstat_hdr_size; /* * Number of bytes consumed by ARC buffers of type equal to * ARC_BUFC_DATA. This is generally consumed by buffers backing * on disk user data (e.g. plain file contents). + * Not updated directly; only synced in arc_kstat_update. */ kstat_named_t arcstat_data_size; /* @@ -506,6 +511,7 @@ typedef struct arc_stats { * ARC_BUFC_METADATA. This is generally consumed by buffers * backing on disk data that is used for internal ZFS * structures (e.g. ZAP, dnode, indirect blocks, etc). + * Not updated directly; only synced in arc_kstat_update. */ kstat_named_t arcstat_metadata_size; /* @@ -514,6 +520,7 @@ typedef struct arc_stats { * buffers (allocated directly via zio_buf_* functions), * dmu_buf_impl_t structures (allocated via dmu_buf_impl_t * cache), and dnode_t structures (allocated via dnode_t cache). + * Not updated directly; only synced in arc_kstat_update. */ kstat_named_t arcstat_other_size; /* @@ -521,6 +528,7 @@ typedef struct arc_stats { * arc_anon state. This includes *all* buffers in the arc_anon * state; e.g. data, metadata, evictable, and unevictable buffers * are all included in this value. + * Not updated directly; only synced in arc_kstat_update. */ kstat_named_t arcstat_anon_size; /* @@ -528,6 +536,7 @@ typedef struct arc_stats { * following criteria: backing buffers of type ARC_BUFC_DATA, * residing in the arc_anon state, and are eligible for eviction * (e.g. have no outstanding holds on the buffer). + * Not updated directly; only synced in arc_kstat_update. */ kstat_named_t arcstat_anon_evictable_data; /* @@ -535,6 +544,7 @@ typedef struct arc_stats { * following criteria: backing buffers of type ARC_BUFC_METADATA, * residing in the arc_anon state, and are eligible for eviction * (e.g. have no outstanding holds on the buffer). + * Not updated directly; only synced in arc_kstat_update. */ kstat_named_t arcstat_anon_evictable_metadata; /* @@ -542,6 +552,7 @@ typedef struct arc_stats { * arc_mru state. This includes *all* buffers in the arc_mru * state; e.g. data, metadata, evictable, and unevictable buffers * are all included in this value. + * Not updated directly; only synced in arc_kstat_update. */ kstat_named_t arcstat_mru_size; /* @@ -549,6 +560,7 @@ typedef struct arc_stats { * following criteria: backing buffers of type ARC_BUFC_DATA, * residing in the arc_mru state, and are eligible for eviction * (e.g. have no outstanding holds on the buffer). + * Not updated directly; only synced in arc_kstat_update. */ kstat_named_t arcstat_mru_evictable_data; /* @@ -556,6 +568,7 @@ typedef struct arc_stats { * following criteria: backing buffers of type ARC_BUFC_METADATA, * residing in the arc_mru state, and are eligible for eviction * (e.g. have no outstanding holds on the buffer). + * Not updated directly; only synced in arc_kstat_update. */ kstat_named_t arcstat_mru_evictable_metadata; /* @@ -566,18 +579,21 @@ typedef struct arc_stats { * don't actually have ARC buffers linked off of these headers. * Thus, *if* the headers had associated ARC buffers, these * buffers *would have* consumed this number of bytes. + * Not updated directly; only synced in arc_kstat_update. */ kstat_named_t arcstat_mru_ghost_size; /* * Number of bytes that *would have been* consumed by ARC * buffers that are eligible for eviction, of type * ARC_BUFC_DATA, and linked off the arc_mru_ghost state. + * Not updated directly; only synced in arc_kstat_update. */ kstat_named_t arcstat_mru_ghost_evictable_data; /* * Number of bytes that *would have been* consumed by ARC * buffers that are eligible for eviction, of type * ARC_BUFC_METADATA, and linked off the arc_mru_ghost state. + * Not updated directly; only synced in arc_kstat_update. */ kstat_named_t arcstat_mru_ghost_evictable_metadata; /* @@ -585,36 +601,42 @@ typedef struct arc_stats { * arc_mfu state. This includes *all* buffers in the arc_mfu * state; e.g. data, metadata, evictable, and unevictable buffers * are all included in this value. + * Not updated directly; only synced in arc_kstat_update. */ kstat_named_t arcstat_mfu_size; /* * Number of bytes consumed by ARC buffers that are eligible for * eviction, of type ARC_BUFC_DATA, and reside in the arc_mfu * state. + * Not updated directly; only synced in arc_kstat_update. */ kstat_named_t arcstat_mfu_evictable_data; /* * Number of bytes consumed by ARC buffers that are eligible for * eviction, of type ARC_BUFC_METADATA, and reside in the * arc_mfu state. + * Not updated directly; only synced in arc_kstat_update. */ kstat_named_t arcstat_mfu_evictable_metadata; /* * Total number of bytes that *would have been* consumed by ARC * buffers in the arc_mfu_ghost state. See the comment above * arcstat_mru_ghost_size for more details. + * Not updated directly; only synced in arc_kstat_update. */ kstat_named_t arcstat_mfu_ghost_size; /* * Number of bytes that *would have been* consumed by ARC * buffers that are eligible for eviction, of type * ARC_BUFC_DATA, and linked off the arc_mfu_ghost state. + * Not updated directly; only synced in arc_kstat_update. */ kstat_named_t arcstat_mfu_ghost_evictable_data; /* * Number of bytes that *would have been* consumed by ARC * buffers that are eligible for eviction, of type * ARC_BUFC_METADATA, and linked off the arc_mru_ghost state. + * Not updated directly; only synced in arc_kstat_update. */ kstat_named_t arcstat_mfu_ghost_evictable_metadata; kstat_named_t arcstat_l2_hits; @@ -636,8 +658,10 @@ typedef struct arc_stats { kstat_named_t arcstat_l2_io_error; kstat_named_t arcstat_l2_lsize; kstat_named_t arcstat_l2_psize; + /* Not updated directly; only synced in arc_kstat_update. */ kstat_named_t arcstat_l2_hdr_size; kstat_named_t arcstat_memory_throttle_count; + /* Not updated directly; only synced in arc_kstat_update. */ kstat_named_t arcstat_meta_used; kstat_named_t arcstat_meta_limit; kstat_named_t arcstat_meta_max; @@ -784,14 +808,12 @@ static arc_state_t *arc_l2c_only; * the possibility of inconsistency by having shadow copies of the variables, * while still allowing the code to be readable. */ -#define arc_size ARCSTAT(arcstat_size) /* actual total arc size */ #define arc_p ARCSTAT(arcstat_p) /* target size of MRU */ #define arc_c ARCSTAT(arcstat_c) /* target size of cache */ #define arc_c_min ARCSTAT(arcstat_c_min) /* min target cache size */ #define arc_c_max ARCSTAT(arcstat_c_max) /* max target cache size */ #define arc_meta_limit ARCSTAT(arcstat_meta_limit) /* max size for metadata */ #define arc_meta_min ARCSTAT(arcstat_meta_min) /* min size for metadata */ -#define arc_meta_used ARCSTAT(arcstat_meta_used) /* size of metadata */ #define arc_meta_max ARCSTAT(arcstat_meta_max) /* max size of metadata */ /* compressed size of entire arc */ @@ -801,6 +823,22 @@ static arc_state_t *arc_l2c_only; /* number of bytes in the arc from arc_buf_t's */ #define arc_overhead_size ARCSTAT(arcstat_overhead_size) +/* + * There are also some ARC variables that we want to export, but that are + * updated so often that having the canonical representation be the statistic + * variable causes a performance bottleneck. We want to use aggsum_t's for these + * instead, but still be able to export the kstat in the same way as before. + * The solution is to always use the aggsum version, except in the kstat update + * callback. + */ +aggsum_t arc_size; +aggsum_t arc_meta_used; +aggsum_t astat_data_size; +aggsum_t astat_metadata_size; +aggsum_t astat_hdr_size; +aggsum_t astat_other_size; +aggsum_t astat_l2_hdr_size; + static int arc_no_grow; /* Don't try to grow cache size */ static uint64_t arc_tempreserve; static uint64_t arc_loaned_bytes; @@ -1118,21 +1156,15 @@ static inline void arc_hdr_clear_flags(arc_buf_hdr_t * static boolean_t l2arc_write_eligible(uint64_t, arc_buf_hdr_t *); static void l2arc_read_done(zio_t *); + +/* + * We use Cityhash for this. It's fast, and has good hash properties without + * requiring any large static buffers. + */ static uint64_t buf_hash(uint64_t spa, const dva_t *dva, uint64_t birth) { - uint8_t *vdva = (uint8_t *)dva; - uint64_t crc = -1ULL; - int i; - - ASSERT(zfs_crc64_table[128] == ZFS_CRC64_POLY); - - for (i = 0; i < sizeof (dva_t); i++) - crc = (crc >> 8) ^ zfs_crc64_table[(crc ^ vdva[i]) & 0xFF]; - - crc ^= (spa>>8) ^ birth; - - return (crc); + return (cityhash4(spa, dva->dva_word[0], dva->dva_word[1], birth)); } #define HDR_EMPTY(hdr) \ @@ -2322,26 +2354,26 @@ arc_space_consume(uint64_t space, arc_space_type_t typ switch (type) { case ARC_SPACE_DATA: - ARCSTAT_INCR(arcstat_data_size, space); + aggsum_add(&astat_data_size, space); break; case ARC_SPACE_META: - ARCSTAT_INCR(arcstat_metadata_size, space); + aggsum_add(&astat_metadata_size, space); break; case ARC_SPACE_OTHER: - ARCSTAT_INCR(arcstat_other_size, space); + aggsum_add(&astat_other_size, space); break; case ARC_SPACE_HDRS: - ARCSTAT_INCR(arcstat_hdr_size, space); + aggsum_add(&astat_hdr_size, space); break; case ARC_SPACE_L2HDRS: - ARCSTAT_INCR(arcstat_l2_hdr_size, space); + aggsum_add(&astat_l2_hdr_size, space); break; } if (type != ARC_SPACE_DATA) - ARCSTAT_INCR(arcstat_meta_used, space); + aggsum_add(&arc_meta_used, space); - atomic_add_64(&arc_size, space); + aggsum_add(&arc_size, space); } void @@ -2351,31 +2383,36 @@ arc_space_return(uint64_t space, arc_space_type_t type switch (type) { case ARC_SPACE_DATA: - ARCSTAT_INCR(arcstat_data_size, -space); + aggsum_add(&astat_data_size, -space); break; case ARC_SPACE_META: - ARCSTAT_INCR(arcstat_metadata_size, -space); + aggsum_add(&astat_metadata_size, -space); break; case ARC_SPACE_OTHER: - ARCSTAT_INCR(arcstat_other_size, -space); + aggsum_add(&astat_other_size, -space); break; case ARC_SPACE_HDRS: - ARCSTAT_INCR(arcstat_hdr_size, -space); + aggsum_add(&astat_hdr_size, -space); break; case ARC_SPACE_L2HDRS: - ARCSTAT_INCR(arcstat_l2_hdr_size, -space); + aggsum_add(&astat_l2_hdr_size, -space); break; } if (type != ARC_SPACE_DATA) { - ASSERT(arc_meta_used >= space); - if (arc_meta_max < arc_meta_used) - arc_meta_max = arc_meta_used; - ARCSTAT_INCR(arcstat_meta_used, -space); + ASSERT(aggsum_compare(&arc_meta_used, space) >= 0); + /* + * We use the upper bound here rather than the precise value + * because the arc_meta_max value doesn't need to be + * precise. It's only consumed by humans via arcstats. + */ + if (arc_meta_max < aggsum_upper_bound(&arc_meta_used)) + arc_meta_max = aggsum_upper_bound(&arc_meta_used); + aggsum_add(&arc_meta_used, -space); } - ASSERT(arc_size >= space); - atomic_add_64(&arc_size, -space); + ASSERT(aggsum_compare(&arc_size, space) >= 0); + aggsum_add(&arc_size, -space); } /* @@ -3573,7 +3610,7 @@ arc_adjust_impl(arc_state_t *state, uint64_t spa, int6 * capped by the arc_meta_limit tunable. */ static uint64_t -arc_adjust_meta(void) +arc_adjust_meta(uint64_t meta_used) { uint64_t total_evicted = 0; int64_t target; @@ -3585,7 +3622,7 @@ arc_adjust_meta(void) * we're over the meta limit more than we're over arc_p, we * evict some from the MRU here, and some from the MFU below. */ - target = MIN((int64_t)(arc_meta_used - arc_meta_limit), + target = MIN((int64_t)(meta_used - arc_meta_limit), (int64_t)(refcount_count(&arc_anon->arcs_size) + refcount_count(&arc_mru->arcs_size) - arc_p)); @@ -3596,8 +3633,9 @@ arc_adjust_meta(void) * below the meta limit, but not so much as to drop us below the * space allotted to the MFU (which is defined as arc_c - arc_p). */ - target = MIN((int64_t)(arc_meta_used - arc_meta_limit), - (int64_t)(refcount_count(&arc_mfu->arcs_size) - (arc_c - arc_p))); + target = MIN((int64_t)(meta_used - arc_meta_limit), + (int64_t)(refcount_count(&arc_mfu->arcs_size) - + (arc_c - arc_p))); total_evicted += arc_adjust_impl(arc_mfu, 0, target, ARC_BUFC_METADATA); @@ -3688,12 +3726,14 @@ arc_adjust(void) uint64_t total_evicted = 0; uint64_t bytes; int64_t target; + uint64_t asize = aggsum_value(&arc_size); + uint64_t ameta = aggsum_value(&arc_meta_used); /* * If we're over arc_meta_limit, we want to correct that before * potentially evicting data buffers below. */ - total_evicted += arc_adjust_meta(); + total_evicted += arc_adjust_meta(ameta); /* * Adjust MRU size @@ -3705,9 +3745,9 @@ arc_adjust(void) * the MRU is over arc_p, we'll evict enough to get back to * arc_p here, and then evict more from the MFU below. */ - target = MIN((int64_t)(arc_size - arc_c), + target = MIN((int64_t)(asize - arc_c), (int64_t)(refcount_count(&arc_anon->arcs_size) + - refcount_count(&arc_mru->arcs_size) + arc_meta_used - arc_p)); + refcount_count(&arc_mru->arcs_size) + ameta - arc_p)); /* * If we're below arc_meta_min, always prefer to evict data. @@ -3718,7 +3758,7 @@ arc_adjust(void) * type, spill over into the next type. */ if (arc_adjust_type(arc_mru) == ARC_BUFC_METADATA && - arc_meta_used > arc_meta_min) { + ameta > arc_meta_min) { bytes = arc_adjust_impl(arc_mru, 0, target, ARC_BUFC_METADATA); total_evicted += bytes; @@ -3751,10 +3791,10 @@ arc_adjust(void) * size back to arc_p, if we're still above the target cache * size, we evict the rest from the MFU. */ - target = arc_size - arc_c; + target = asize - arc_c; if (arc_adjust_type(arc_mfu) == ARC_BUFC_METADATA && - arc_meta_used > arc_meta_min) { + ameta > arc_meta_min) { bytes = arc_adjust_impl(arc_mfu, 0, target, ARC_BUFC_METADATA); total_evicted += bytes; @@ -3855,6 +3895,7 @@ arc_flush(spa_t *spa, boolean_t retry) void arc_shrink(int64_t to_free) { + uint64_t asize = aggsum_value(&arc_size); if (arc_c > arc_c_min) { if (arc_c > arc_c_min + to_free) @@ -3863,15 +3904,15 @@ arc_shrink(int64_t to_free) arc_c = arc_c_min; atomic_add_64(&arc_p, -(arc_p >> arc_shrink_shift)); - if (arc_c > arc_size) - arc_c = MAX(arc_size, arc_c_min); + if (asize < arc_c) + arc_c = MAX(asize, arc_c_min); if (arc_p > arc_c) arc_p = (arc_c >> 1); ASSERT(arc_c >= arc_c_min); ASSERT((int64_t)arc_p >= 0); } - if (arc_size > arc_c) + if (asize > arc_c) (void) arc_adjust(); } @@ -4035,7 +4076,7 @@ arc_kmem_reap_now(void) extern kmem_cache_t *abd_chunk_cache; #ifdef _KERNEL - if (arc_meta_used >= arc_meta_limit) { + if (aggsum_compare(&arc_meta_used, arc_meta_limit) >= 0) { /* * We are exceeding our meta-data cache limit. * Purge some DNLC entries to release holds on meta-data. @@ -4194,7 +4235,7 @@ arc_reclaim_thread(void *unused) * be helpful and could potentially cause us to enter an * infinite loop. */ - if (arc_size <= arc_c || evicted == 0) { + if (aggsum_compare(&arc_size, arc_c) <= 0|| evicted == 0) { /* * We're either no longer overflowing, or we * can't evict anything more, so we should wake @@ -4276,7 +4317,8 @@ arc_adapt(int bytes, arc_state_t *state) * If we're within (2 * maxblocksize) bytes of the target * cache size, increment the target cache size */ - if (arc_size > arc_c - (2ULL << SPA_MAXBLOCKSHIFT)) { + if (aggsum_compare(&arc_size, arc_c - (2ULL << SPA_MAXBLOCKSHIFT)) > + 0) { atomic_add_64(&arc_c, (int64_t)bytes); if (arc_c > arc_c_max) arc_c = arc_c_max; @@ -4299,7 +4341,16 @@ arc_is_overflowing(void) uint64_t overflow = MAX(SPA_MAXBLOCKSIZE, arc_c >> zfs_arc_overflow_shift); - return (arc_size >= arc_c + overflow); + /* + * We just compare the lower bound here for performance reasons. Our + * primary goals are to make sure that the arc never grows without + * bound, and that it can reach its maximum size. This check + * accomplishes both goals. The maximum amount we could run over by is + * 2 * aggsum_borrow_multiplier * NUM_CPUS * the average size of a block + * in the ARC. In practice, that's in the tens of MB, which is low + * enough to be safe. + */ + return (aggsum_lower_bound(&arc_size) >= arc_c + overflow); } static abd_t * @@ -4414,7 +4465,8 @@ arc_get_data_impl(arc_buf_hdr_t *hdr, uint64_t size, v * If we are growing the cache, and we are adding anonymous * data, and we have outgrown arc_p, update arc_p */ - if (arc_size < arc_c && hdr->b_l1hdr.b_state == arc_anon && + if (aggsum_compare(&arc_size, arc_c) < 0 && + hdr->b_l1hdr.b_state == arc_anon && (refcount_count(&arc_anon->arcs_size) + refcount_count(&arc_mru->arcs_size) > arc_p)) arc_p = MIN(arc_c, arc_p + size); @@ -5850,6 +5902,15 @@ arc_kstat_update(kstat_t *ksp, int rw) &as->arcstat_mfu_ghost_size, &as->arcstat_mfu_ghost_evictable_data, &as->arcstat_mfu_ghost_evictable_metadata); + + ARCSTAT(arcstat_size) = aggsum_value(&arc_size); + ARCSTAT(arcstat_meta_used) = aggsum_value(&arc_meta_used); + ARCSTAT(arcstat_data_size) = aggsum_value(&astat_data_size); + ARCSTAT(arcstat_metadata_size) = + aggsum_value(&astat_metadata_size); + ARCSTAT(arcstat_hdr_size) = aggsum_value(&astat_hdr_size); + ARCSTAT(arcstat_other_size) = aggsum_value(&astat_other_size); + ARCSTAT(arcstat_l2_hdr_size) = aggsum_value(&astat_l2_hdr_size); } return (0); @@ -5960,6 +6021,14 @@ arc_state_init(void) refcount_create(&arc_mfu->arcs_size); refcount_create(&arc_mfu_ghost->arcs_size); refcount_create(&arc_l2c_only->arcs_size); + + aggsum_init(&arc_meta_used, 0); + aggsum_init(&arc_size, 0); + aggsum_init(&astat_data_size, 0); + aggsum_init(&astat_metadata_size, 0); + aggsum_init(&astat_hdr_size, 0); + aggsum_init(&astat_other_size, 0); + aggsum_init(&astat_l2_hdr_size, 0); } static void @@ -6052,7 +6121,6 @@ arc_init(void) arc_c = arc_c_max; arc_p = (arc_c >> 1); - arc_size = 0; /* limit meta-data to 1/4 of the arc capacity */ arc_meta_limit = arc_c_max / 4; Added: vendor-sys/illumos/dist/uts/common/fs/zfs/cityhash.c ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor-sys/illumos/dist/uts/common/fs/zfs/cityhash.c Fri Mar 23 00:20:42 2018 (r331400) @@ -0,0 +1,63 @@ +// Copyright (c) 2011 Google, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + +/* + * Copyright (c) 2017 by Delphix. All rights reserved. + */ + +#include + +#define HASH_K1 0xb492b66fbe98f273ULL +#define HASH_K2 0x9ae16a3b2f90404fULL + +/* + * Bitwise right rotate. Normally this will compile to a single + * instruction. + */ +static inline uint64_t +rotate(uint64_t val, int shift) +{ + // Avoid shifting by 64: doing so yields an undefined result. + return (shift == 0 ? val : (val >> shift) | (val << (64 - shift))); +} + +static inline uint64_t +cityhash_helper(uint64_t u, uint64_t v, uint64_t mul) +{ + uint64_t a = (u ^ v) * mul; + a ^= (a >> 47); + uint64_t b = (v ^ a) * mul; + b ^= (b >> 47); + b *= mul; + return (b); +} + +uint64_t +cityhash4(uint64_t w1, uint64_t w2, uint64_t w3, uint64_t w4) +{ + uint64_t mul = HASH_K2 + 64; + uint64_t a = w1 * HASH_K1; + uint64_t b = w2; + uint64_t c = w4 * mul; + uint64_t d = w3 * HASH_K2; + return (cityhash_helper(rotate(a + b, 43) + rotate(c, 30) + d, + a + rotate(b + HASH_K2, 18) + c, mul)); + +} Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/dbuf.c ============================================================================== --- vendor-sys/illumos/dist/uts/common/fs/zfs/dbuf.c Thu Mar 22 23:58:05 2018 (r331399) +++ vendor-sys/illumos/dist/uts/common/fs/zfs/dbuf.c Fri Mar 23 00:20:42 2018 (r331400) @@ -48,6 +48,7 @@ #include #include #include +#include uint_t zfs_dbuf_evict_key; @@ -167,23 +168,14 @@ static dbuf_hash_table_t dbuf_hash_table; static uint64_t dbuf_hash_count; +/* + * We use Cityhash for this. It's fast, and has good hash properties without + * requiring any large static buffers. + */ static uint64_t dbuf_hash(void *os, uint64_t obj, uint8_t lvl, uint64_t blkid) { - uintptr_t osv = (uintptr_t)os; - uint64_t crc = -1ULL; - - ASSERT(zfs_crc64_table[128] == ZFS_CRC64_POLY); - crc = (crc >> 8) ^ zfs_crc64_table[(crc ^ (lvl)) & 0xFF]; - crc = (crc >> 8) ^ zfs_crc64_table[(crc ^ (osv >> 6)) & 0xFF]; - crc = (crc >> 8) ^ zfs_crc64_table[(crc ^ (obj >> 0)) & 0xFF]; - crc = (crc >> 8) ^ zfs_crc64_table[(crc ^ (obj >> 8)) & 0xFF]; - crc = (crc >> 8) ^ zfs_crc64_table[(crc ^ (blkid >> 0)) & 0xFF]; - crc = (crc >> 8) ^ zfs_crc64_table[(crc ^ (blkid >> 8)) & 0xFF]; - - crc ^= (osv>>14) ^ (obj>>16) ^ (blkid>>16); - - return (crc); + return (cityhash4((uintptr_t)os, obj, (uint64_t)lvl, blkid)); } #define DBUF_EQUAL(dbuf, os, obj, level, blkid) \ Added: vendor-sys/illumos/dist/uts/common/fs/zfs/sys/aggsum.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor-sys/illumos/dist/uts/common/fs/zfs/sys/aggsum.h Fri Mar 23 00:20:42 2018 (r331400) @@ -0,0 +1,60 @@ +/* + * CDDL HEADER START + * + * This file and its contents are supplied under the terms of the + * Common Development and Distribution License ("CDDL"), version 1.0. + * You may only use this file in accordance with the terms of version + * 1.0 of the CDDL. + * + * A full copy of the text of the CDDL should have accompanied this + * source. A copy of the CDDL is also available via the Internet at + * http://www.illumos.org/license/CDDL. + * + * CDDL HEADER END + */ +/* + * Copyright (c) 2017 by Delphix. All rights reserved. + */ + +#ifndef _SYS_AGGSUM_H +#define _SYS_AGGSUM_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#define CACHE_LINE_SIZE 64 + +typedef struct aggsum_bucket { + kmutex_t asc_lock; + int64_t asc_delta; + uint64_t asc_borrowed; + uint64_t asc_pad[4]; /* pad out to cache line (64 bytes) */ +} aggsum_bucket_t __aligned(CACHE_LINE_SIZE); + +/* + * Fan out over FANOUT cpus. + */ +typedef struct aggsum { + kmutex_t as_lock; + int64_t as_lower_bound; + int64_t as_upper_bound; + uint64_t as_numbuckets; + aggsum_bucket_t *as_buckets; +} aggsum_t; + +void aggsum_init(aggsum_t *, uint64_t); +void aggsum_fini(aggsum_t *); +int64_t aggsum_lower_bound(aggsum_t *); +int64_t aggsum_upper_bound(aggsum_t *); +int aggsum_compare(aggsum_t *, uint64_t); +uint64_t aggsum_value(aggsum_t *); +void aggsum_add(aggsum_t *, int64_t); + +#ifdef __cplusplus +} +#endif + +#endif /* _SYS_AGGSUM_H */ Added: vendor-sys/illumos/dist/uts/common/fs/zfs/sys/cityhash.h ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ vendor-sys/illumos/dist/uts/common/fs/zfs/sys/cityhash.h Fri Mar 23 00:20:42 2018 (r331400) @@ -0,0 +1,41 @@ +// Copyright (c) 2011 Google, Inc. +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to deal +// in the Software without restriction, including without limitation the rights +// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +// copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +// THE SOFTWARE. + + +/* + * Copyright (c) 2017 by Delphix. All rights reserved. + */ + +#ifndef _SYS_CITYHASH_H +#define _SYS_CITYHASH_H *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-vendor@freebsd.org Fri Mar 23 02:22:16 2018 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id DFC66F60DAF; Fri, 23 Mar 2018 02:22:16 +0000 (UTC) (envelope-from mav@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 9559979DD3; Fri, 23 Mar 2018 02:22:16 +0000 (UTC) (envelope-from mav@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 904EC19CC1; Fri, 23 Mar 2018 02:22:16 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2N2MG1Q075492; Fri, 23 Mar 2018 02:22:16 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2N2MGW3075491; Fri, 23 Mar 2018 02:22:16 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201803230222.w2N2MGW3075491@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 23 Mar 2018 02:22:16 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r331405 - vendor-sys/illumos/dist/uts/common/fs/zfs X-SVN-Group: vendor-sys X-SVN-Commit-Author: mav X-SVN-Commit-Paths: vendor-sys/illumos/dist/uts/common/fs/zfs X-SVN-Commit-Revision: 331405 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 Mar 2018 02:22:17 -0000 Author: mav Date: Fri Mar 23 02:22:16 2018 New Revision: 331405 URL: https://svnweb.freebsd.org/changeset/base/331405 Log: 9084 spa_*_ashift must ignore spare devices illumos/illumos-gate@b037f3dbd69cef4a7ffd576ad33e07bfaf0b1e84 Reviewed by: Prashanth Sreenivasa Reviewed by: George Wilson Approved by: Dan McDonald Author: Prakash Surya Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/vdev.c Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/vdev.c ============================================================================== --- vendor-sys/illumos/dist/uts/common/fs/zfs/vdev.c Fri Mar 23 02:15:05 2018 (r331404) +++ vendor-sys/illumos/dist/uts/common/fs/zfs/vdev.c Fri Mar 23 02:22:16 2018 (r331405) @@ -1478,14 +1478,6 @@ vdev_open(vdev_t *vd) return (error); } - if (vd->vdev_top == vd && vd->vdev_ashift != 0 && - !vd->vdev_isl2cache && !vd->vdev_islog) { - if (vd->vdev_ashift > spa->spa_max_ashift) - spa->spa_max_ashift = vd->vdev_ashift; - if (vd->vdev_ashift < spa->spa_min_ashift) - spa->spa_min_ashift = vd->vdev_ashift; - } - /* * Track the min and max ashift values for normal data devices. */ From owner-svn-src-vendor@freebsd.org Fri Mar 23 02:28:38 2018 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BB2DCF61460; Fri, 23 Mar 2018 02:28:38 +0000 (UTC) (envelope-from mav@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 7031A7A204; Fri, 23 Mar 2018 02:28:38 +0000 (UTC) (envelope-from mav@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 6B42319CD9; Fri, 23 Mar 2018 02:28:38 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2N2ScHx075819; Fri, 23 Mar 2018 02:28:38 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2N2ScaL075817; Fri, 23 Mar 2018 02:28:38 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201803230228.w2N2ScaL075817@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 23 Mar 2018 02:28:38 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r331407 - vendor-sys/illumos/dist/uts/common/fs/zfs vendor/illumos/dist/cmd/zfs vendor/illumos/dist/cmd/zpool X-SVN-Group: vendor X-SVN-Commit-Author: mav X-SVN-Commit-Paths: vendor-sys/illumos/dist/uts/common/fs/zfs vendor/illumos/dist/cmd/zfs vendor/illumos/dist/cmd/zpool X-SVN-Commit-Revision: 331407 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 Mar 2018 02:28:38 -0000 Author: mav Date: Fri Mar 23 02:28:37 2018 New Revision: 331407 URL: https://svnweb.freebsd.org/changeset/base/331407 Log: 9213 zfs: sytem typo illumos/illumos-gate@edc8ef7d921c96b23969898aeb766cb24960bda7 Reviewed by: C Fraire Reviewed by: Andy Fiddaman Approved by: Joshua M. Clulow Author: Toomas Soome Modified: vendor/illumos/dist/cmd/zfs/zfs_main.c vendor/illumos/dist/cmd/zpool/zpool_main.c Changes in other areas also in this revision: Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/zfs_acl.c Modified: vendor/illumos/dist/cmd/zfs/zfs_main.c ============================================================================== --- vendor/illumos/dist/cmd/zfs/zfs_main.c Fri Mar 23 02:24:52 2018 (r331406) +++ vendor/illumos/dist/cmd/zfs/zfs_main.c Fri Mar 23 02:28:37 2018 (r331407) @@ -2188,7 +2188,7 @@ zfs_do_upgrade(int argc, char **argv) if (cb.cb_numfailed != 0) ret = 1; } else { - /* List old-version filesytems */ + /* List old-version filesystems */ boolean_t found; (void) printf(gettext("This system is currently running " "ZFS filesystem version %llu.\n\n"), ZPL_VERSION); Modified: vendor/illumos/dist/cmd/zpool/zpool_main.c ============================================================================== --- vendor/illumos/dist/cmd/zpool/zpool_main.c Fri Mar 23 02:24:52 2018 (r331406) +++ vendor/illumos/dist/cmd/zpool/zpool_main.c Fri Mar 23 02:28:37 2018 (r331407) @@ -1826,7 +1826,7 @@ show_import(nvlist_t *config) case ZPOOL_STATUS_UNSUP_FEAT_READ: (void) printf(gettext("status: The pool uses the following " - "feature(s) not supported on this sytem:\n")); + "feature(s) not supported on this system:\n")); zpool_print_unsup_feat(config); break; From owner-svn-src-vendor@freebsd.org Fri Mar 23 02:28:38 2018 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 59C27F6145D; Fri, 23 Mar 2018 02:28:38 +0000 (UTC) (envelope-from mav@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 07E777A203; Fri, 23 Mar 2018 02:28:38 +0000 (UTC) (envelope-from mav@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 02F0F19CD8; Fri, 23 Mar 2018 02:28:38 +0000 (UTC) (envelope-from mav@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2N2Sb2n075812; Fri, 23 Mar 2018 02:28:37 GMT (envelope-from mav@FreeBSD.org) Received: (from mav@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2N2SbN1075811; Fri, 23 Mar 2018 02:28:37 GMT (envelope-from mav@FreeBSD.org) Message-Id: <201803230228.w2N2SbN1075811@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: mav set sender to mav@FreeBSD.org using -f From: Alexander Motin Date: Fri, 23 Mar 2018 02:28:37 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r331407 - vendor-sys/illumos/dist/uts/common/fs/zfs vendor/illumos/dist/cmd/zfs vendor/illumos/dist/cmd/zpool X-SVN-Group: vendor-sys X-SVN-Commit-Author: mav X-SVN-Commit-Paths: vendor-sys/illumos/dist/uts/common/fs/zfs vendor/illumos/dist/cmd/zfs vendor/illumos/dist/cmd/zpool X-SVN-Commit-Revision: 331407 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 23 Mar 2018 02:28:38 -0000 Author: mav Date: Fri Mar 23 02:28:37 2018 New Revision: 331407 URL: https://svnweb.freebsd.org/changeset/base/331407 Log: 9213 zfs: sytem typo illumos/illumos-gate@edc8ef7d921c96b23969898aeb766cb24960bda7 Reviewed by: C Fraire Reviewed by: Andy Fiddaman Approved by: Joshua M. Clulow Author: Toomas Soome Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/zfs_acl.c Changes in other areas also in this revision: Modified: vendor/illumos/dist/cmd/zfs/zfs_main.c vendor/illumos/dist/cmd/zpool/zpool_main.c Modified: vendor-sys/illumos/dist/uts/common/fs/zfs/zfs_acl.c ============================================================================== --- vendor-sys/illumos/dist/uts/common/fs/zfs/zfs_acl.c Fri Mar 23 02:24:52 2018 (r331406) +++ vendor-sys/illumos/dist/uts/common/fs/zfs/zfs_acl.c Fri Mar 23 02:28:37 2018 (r331407) @@ -2371,7 +2371,7 @@ slow: /* * Determine whether Access should be granted/denied. * - * The least priv subsytem is always consulted as a basic privilege + * The least priv subsystem is always consulted as a basic privilege * can define any form of access. */ int From owner-svn-src-vendor@freebsd.org Sat Mar 24 04:41:50 2018 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 38DA1F6B263; Sat, 24 Mar 2018 04:41:50 +0000 (UTC) (envelope-from philip@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 DAD7478092; Sat, 24 Mar 2018 04:41:49 +0000 (UTC) (envelope-from philip@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 D574F20FB; Sat, 24 Mar 2018 04:41:49 +0000 (UTC) (envelope-from philip@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2O4fnT6073208; Sat, 24 Mar 2018 04:41:49 GMT (envelope-from philip@FreeBSD.org) Received: (from philip@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2O4fncf073200; Sat, 24 Mar 2018 04:41:49 GMT (envelope-from philip@FreeBSD.org) Message-Id: <201803240441.w2O4fncf073200@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: philip set sender to philip@FreeBSD.org using -f From: Philip Paeps Date: Sat, 24 Mar 2018 04:41:49 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r331479 - vendor/tzdata/dist X-SVN-Group: vendor X-SVN-Commit-Author: philip X-SVN-Commit-Paths: vendor/tzdata/dist X-SVN-Commit-Revision: 331479 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 24 Mar 2018 04:41:50 -0000 Author: philip Date: Sat Mar 24 04:41:49 2018 New Revision: 331479 URL: https://svnweb.freebsd.org/changeset/base/331479 Log: Import tzdata 2018d Added: vendor/tzdata/dist/ziguard.awk (contents, props changed) Modified: vendor/tzdata/dist/CONTRIBUTING vendor/tzdata/dist/Makefile vendor/tzdata/dist/NEWS vendor/tzdata/dist/africa vendor/tzdata/dist/antarctica vendor/tzdata/dist/asia vendor/tzdata/dist/australasia vendor/tzdata/dist/backzone vendor/tzdata/dist/checktab.awk vendor/tzdata/dist/europe vendor/tzdata/dist/northamerica vendor/tzdata/dist/southamerica vendor/tzdata/dist/theory.html vendor/tzdata/dist/version vendor/tzdata/dist/zishrink.awk vendor/tzdata/dist/zone.tab vendor/tzdata/dist/zone1970.tab Modified: vendor/tzdata/dist/CONTRIBUTING ============================================================================== --- vendor/tzdata/dist/CONTRIBUTING Sat Mar 24 04:21:22 2018 (r331478) +++ vendor/tzdata/dist/CONTRIBUTING Sat Mar 24 04:41:49 2018 (r331479) @@ -25,7 +25,8 @@ justification. Citations should use https: URLs if av Please submit changes against either the latest release in or the master branch of the development -repository. If you use Git the following workflow may be helpful: +repository. The latter is preferred. If you use Git the following +workflow may be helpful: * Copy the development repository. @@ -42,6 +43,12 @@ repository. If you use Git the following workflow may git checkout -b mybranch + * Sleuth by using 'git blame'. For example, when fixing data for + Africa/Sao_Tome, if the command 'git blame africa' outputs a line + '2951fa3b (Paul Eggert 2018-01-08 09:03:13 -0800 1068) Zone + Africa/Sao_Tome 0:26:56 - LMT 1884', commit 2951fa3b should + provide some justification for the 'Zone Africa/Sao_Tome' line. + * Edit source files. Include commentary that justifies the changes by citing reliable sources. @@ -66,6 +73,9 @@ repository. If you use Git the following workflow may for others to review. git send-email master + + For an archived example of such an email, see + . * Start anew by getting current with the master branch again (the second step above). Modified: vendor/tzdata/dist/Makefile ============================================================================== --- vendor/tzdata/dist/Makefile Sat Mar 24 04:21:22 2018 (r331478) +++ vendor/tzdata/dist/Makefile Sat Mar 24 04:41:49 2018 (r331479) @@ -10,6 +10,15 @@ VERSION= unknown # Email address for bug reports. BUGEMAIL= tz@iana.org +# Choose source data features. To get new features right away, use: +# DATAFORM= vanguard +# To wait a while before using new features, to give downstream users +# time to upgrade zic (the default), use: +# DATAFORM= main +# To wait even longer for new features, use: +# DATAFORM= rearguard +DATAFORM= main + # Change the line below for your time zone (after finding the zone you want in # the time zone files, or adding it to a time zone file). # Alternately, if you discover you've got the wrong time zone, you can just @@ -25,10 +34,10 @@ LOCALTIME= GMT # for handling POSIX-style time zone environment variables, # change the line below (after finding the zone you want in the # time zone files, or adding it to a time zone file). -# (When a POSIX-style environment variable is handled, the rules in the +# When a POSIX-style environment variable is handled, the rules in the # template file are used to determine "spring forward" and "fall back" days and # times; the environment variable itself specifies UT offsets of standard and -# summer time.) +# daylight saving time. # Alternately, if you discover you've got the wrong time zone, you can just # zic -p rightzone # to correct things. @@ -189,13 +198,18 @@ LDLIBS= # -DHAVE_STDINT_H if you have a non-C99 compiler with # -DHAVE_STRFTIME_L if declares locale_t and strftime_l # -DHAVE_STRDUP=0 if your system lacks the strdup function +# -DHAVE_STRTOLL=0 if your system lacks the strtoll function # -DHAVE_SYMLINK=0 if your system lacks the symlink function # -DHAVE_SYS_STAT_H=0 if your compiler lacks a # -DHAVE_SYS_WAIT_H=0 if your compiler lacks a # -DHAVE_TZSET=0 if your system lacks a tzset function # -DHAVE_UNISTD_H=0 if your compiler lacks a # -Dlocale_t=XXX if your system uses XXX instead of locale_t +# -DRESERVE_STD_EXT_IDS if your platform reserves standard identifiers +# with external linkage, e.g., applications cannot define 'localtime'. # -Dssize_t=long on hosts like MS-Windows that lack ssize_t +# -DSUPPRESS_TZDIR to not prepend TZDIR to file names; this has +# security implications and is not recommended for general use # -DTHREAD_SAFE to make localtime.c thread-safe, as POSIX requires; # not needed by the main-program tz code, which is single-threaded. # Append other compiler flags as needed, e.g., -pthread on GNU/Linux. @@ -394,13 +408,19 @@ SAFE_CHARSET3= 'abcdefghijklmnopqrstuvwxyz{|}~' SAFE_CHARSET= $(SAFE_CHARSET1)$(SAFE_CHARSET2)$(SAFE_CHARSET3) SAFE_CHAR= '[]'$(SAFE_CHARSET)'-]' +# Non-ASCII non-letters that OK_CHAR allows, as these characters are +# useful in commentary. XEmacs 21.5.34 displays them correctly, +# presumably because they are Latin-1. +UNUSUAL_OK_CHARSET= °±½¾× + # OK_CHAR matches any character allowed in the distributed files. -# This is the same as SAFE_CHAR, except that multibyte letters are -# also allowed so that commentary can contain people's names and quote -# non-English sources. For non-letters the sources are limited to -# ASCII renderings for the convenience of maintainers whose text editors -# mishandle UTF-8 by default (e.g., XEmacs 21.4.22). -OK_CHAR= '[][:alpha:]'$(SAFE_CHARSET)'-]' +# This is the same as SAFE_CHAR, except that UNUSUAL_OK_CHARSET and +# multibyte letters are also allowed so that commentary can contain a +# few safe symbols and people's names and can quote non-English sources. +# Other non-letters are limited to ASCII renderings for the +# convenience of maintainers using XEmacs 21.5.34, which by default +# mishandles Unicode characters U+0100 and greater. +OK_CHAR= '[][:alpha:]$(UNUSUAL_OK_CHARSET)'$(SAFE_CHARSET)'-]' # SAFE_LINE matches a line of safe characters. # SAFE_SHARP_LINE is similar, except any OK character can follow '#'; @@ -462,10 +482,12 @@ TDATA= $(YDATA) $(NDATA) $(BACKWARD) ZONETABLES= zone1970.tab zone.tab TABDATA= iso3166.tab $(TZDATA_TEXT) $(ZONETABLES) LEAP_DEPS= leapseconds.awk leap-seconds.list -TZDATA_ZI_DEPS= zishrink.awk version $(TDATA) $(PACKRATDATA) +TZDATA_ZI_DEPS= ziguard.awk zishrink.awk version $(TDATA) $(PACKRATDATA) +DSTDATA_ZI_DEPS= ziguard.awk $(TDATA) $(PACKRATDATA) DATA= $(TDATA_TO_CHECK) backzone iso3166.tab leap-seconds.list \ leapseconds yearistype.sh $(ZONETABLES) -AWK_SCRIPTS= checklinks.awk checktab.awk leapseconds.awk zishrink.awk +AWK_SCRIPTS= checklinks.awk checktab.awk leapseconds.awk \ + ziguard.awk zishrink.awk MISC= $(AWK_SCRIPTS) zoneinfo2tdf.pl TZS_YEAR= 2050 TZS= to$(TZS_YEAR).tzs @@ -499,7 +521,8 @@ VERSION_DEPS= \ SHELL= /bin/sh -all: tzselect yearistype zic zdump libtz.a $(TABDATA) +all: tzselect yearistype zic zdump libtz.a $(TABDATA) \ + vanguard.zi main.zi rearguard.zi ALL: all date $(ENCHILADA) @@ -534,11 +557,15 @@ version: $(VERSION_DEPS) printf '%s\n' "$$V" >$@.out mv $@.out $@ -# This file can be tailored by setting BACKWARD, PACKRATDATA, etc. -tzdata.zi: $(TZDATA_ZI_DEPS) +# These files can be tailored by setting BACKWARD, PACKRATDATA, etc. +vanguard.zi main.zi rearguard.zi: $(DSTDATA_ZI_DEPS) + $(AWK) -v outfile='$@' -f ziguard.awk $(TDATA) $(PACKRATDATA) \ + >$@.out + mv $@.out $@ +tzdata.zi: $(DATAFORM).zi version version=`sed 1q version` && \ LC_ALL=C $(AWK) -v version="$$version" -f zishrink.awk \ - $(TDATA) $(PACKRATDATA) >$@.out + $(DATAFORM).zi >$@.out mv $@.out $@ version.h: version @@ -614,19 +641,29 @@ posix_packrat: zones: $(REDO) +# dummy.zd is not a real file; it is mentioned here only so that the +# top-level 'make' does not have a syntax error. +ZDS = dummy.zd +# Rule used only by submakes invoked by the $(TZS_NEW) rule. +# It is separate so that GNU 'make -j' can run instances in parallel. +$(ZDS): zdump + ./zdump -i -c $(TZS_YEAR) '$(wd)/'$$(expr $@ : '\(.*\).zd') >$@ + $(TZS_NEW): tzdata.zi zdump zic - mkdir -p tzs.dir + rm -fr tzs.dir + mkdir tzs.dir $(zic) -d tzs.dir tzdata.zi $(AWK) '/^L/{print "Link\t" $$2 "\t" $$3}' \ tzdata.zi | LC_ALL=C sort >$@.out wd=`pwd` && \ - zones=`$(AWK) -v wd="$$wd" \ - '/^Z/{print wd "/tzs.dir/" $$2}' tzdata.zi \ - | LC_ALL=C sort` && \ - ./zdump -i -c $(TZS_YEAR) $$zones >>$@.out - sed 's,^TZ=".*tzs\.dir/,TZ=",' $@.out >$@.sed.out - rm -fr tzs.dir $@.out - mv $@.sed.out $@ + set x `$(AWK) '/^Z/{print "tzs.dir/" $$2 ".zd"}' tzdata.zi \ + | LC_ALL=C sort -t . -k 2,2` && \ + shift && \ + ZDS=$$* && \ + $(MAKE) wd="$$wd" TZS_YEAR=$(TZS_YEAR) ZDS="$$ZDS" $$ZDS && \ + sed 's,^TZ=".*tzs\.dir/,TZ=",' $$ZDS >>$@.out + rm -fr tzs.dir + mv $@.out $@ # If $(TZS) does not already exist (e.g., old-format tarballs), create it. # If it exists but 'make check_tzs' fails, a maintainer should inspect the @@ -669,8 +706,10 @@ check_character_set: $(ENCHILADA) sharp='#' && \ ! grep -Env $(SAFE_LINE) $(MANS) date.1 $(MANTXTS) \ $(MISC) $(SOURCES) $(WEB_PAGES) \ - CONTRIBUTING LICENSE Makefile README \ + CONTRIBUTING LICENSE README \ version tzdata.zi && \ + ! grep -Env $(SAFE_LINE)'|^UNUSUAL_OK_CHARSET='$(OK_CHAR)'*$$' \ + Makefile && \ ! grep -Env $(SAFE_SHARP_LINE) $(TDATA_TO_CHECK) backzone \ leapseconds yearistype.sh zone.tab && \ ! grep -Env $(OK_LINE) $(ENCHILADA); \ @@ -702,7 +741,7 @@ check_sorted: backward backzone iso3166.tab zone.tab z $(AWK) '/^[^#]/ $(CHECK_CC_LIST)' zone1970.tab | \ LC_ALL=C sort -cu -check_links: checklinks.awk $(TDATA_TO_CHECK) +check_links: checklinks.awk $(TDATA_TO_CHECK) tzdata.zi $(AWK) -f checklinks.awk $(TDATA_TO_CHECK) $(AWK) -f checklinks.awk tzdata.zi @@ -720,17 +759,26 @@ check_tzs: $(TZS) $(TZS_NEW) check_web: tz-how-to.html $(VALIDATE_ENV) $(VALIDATE) $(VALIDATE_FLAGS) tz-how-to.html -# Check that tzdata.zi generates the same binary data that its sources do. -check_zishrink: tzdata.zi zic leapseconds $(PACKRATDATA) $(TDATA) +# Check that zishrink.awk does not alter the data, and that ziguard.awk +# preserves main-format data. +check_zishrink: zic leapseconds $(PACKRATDATA) $(TDATA) \ + $(DATAFORM).zi tzdata.zi for type in posix right; do \ - mkdir -p time_t.dir/$$type time_t.dir/$$type-shrunk && \ + mkdir -p time_t.dir/$$type time_t.dir/$$type-t \ + time_t.dir/$$type-shrunk && \ case $$type in \ right) leap='-L leapseconds';; \ *) leap=;; \ esac && \ - $(ZIC) $$leap -d time_t.dir/$$type $(TDATA) && \ - $(AWK) '/^Rule/' $(TDATA) | \ - $(ZIC) $$leap -d time_t.dir/$$type - $(PACKRATDATA) && \ + $(ZIC) $$leap -d time_t.dir/$$type $(DATAFORM).zi && \ + case $(DATAFORM) in \ + main) \ + $(ZIC) $$leap -d time_t.dir/$$type-t $(TDATA) && \ + $(AWK) '/^Rule/' $(TDATA) | \ + $(ZIC) $$leap -d time_t.dir/$$type-t - \ + $(PACKRATDATA) && \ + diff -r time_t.dir/$$type time_t.dir/$$type-t;; \ + esac && \ $(ZIC) $$leap -d time_t.dir/$$type-shrunk tzdata.zi && \ diff -r time_t.dir/$$type time_t.dir/$$type-shrunk || exit; \ done @@ -740,7 +788,7 @@ clean_misc: rm -f core *.o *.out \ date tzselect version.h zdump zic yearistype libtz.a clean: clean_misc - rm -fr *.dir tzdata.zi tzdb-*/ $(TZS_NEW) + rm -fr *.dir *.zi tzdb-*/ $(TZS_NEW) maintainer-clean: clean @echo 'This command is intended for maintainers to use; it' @@ -856,6 +904,9 @@ tarballs traditional_tarballs signatures traditional_s VERSION=`cat version` && \ $(MAKE) VERSION="$$VERSION" $@_version +# These *_version rules are intended for use if VERSION is set by some +# other means. Ordinarily these rules are used only by the above +# non-_version rules, which set VERSION on the 'make' command line. tarballs_version: traditional_tarballs_version tzdb-$(VERSION).tar.lz traditional_tarballs_version: \ tzcode$(VERSION).tar.gz tzdata$(VERSION).tar.gz @@ -917,13 +968,17 @@ zic.o: private.h tzfile.h version.h .KEEP_STATE: .PHONY: ALL INSTALL all -.PHONY: check check_character_set check_links +.PHONY: check check_character_set check_links check_name_lengths .PHONY: check_public check_sorted check_tables .PHONY: check_time_t_alternatives check_tzs check_web check_white_space .PHONY: check_zishrink -.PHONY: clean clean_misc force_tzs +.PHONY: clean clean_misc dummy.zd force_tzs .PHONY: install install_data maintainer-clean names .PHONY: posix_only posix_packrat posix_right .PHONY: public right_only right_posix signatures signatures_version -.PHONY: tarballs tarballs_version typecheck +.PHONY: tarballs tarballs_version +.PHONY: traditional_signatures traditional_signatures_version +.PHONY: traditional_tarballs traditional_tarballs_version +.PHONY: typecheck .PHONY: zonenames zones +.PHONY: $(ZDS) Modified: vendor/tzdata/dist/NEWS ============================================================================== --- vendor/tzdata/dist/NEWS Sat Mar 24 04:21:22 2018 (r331478) +++ vendor/tzdata/dist/NEWS Sat Mar 24 04:41:49 2018 (r331479) @@ -1,9 +1,146 @@ News for the tz database +Release 2018d - 2018-03-22 07:05:46 -0700 + + Briefly: + + Palestine starts DST a week earlier in 2018. + Add support for vanguard and rearguard data consumers. + Add subsecond precision to source data format, though not to data. + + Changes to future time stamps + + In 2018, Palestine starts DST on March 24, not March 31. + Adjust future predictions accordingly. (Thanks to Sharef Mustafa.) + + Changes to past and future time stamps + + Casey Station in Antarctica changed from +11 to +08 on 2018-03-11 + at 04:00. (Thanks to Steffen Thorsen.) + + Changes to past time stamps + + Historical transitions for Uruguay, represented by + America/Montevideo, have been updated per official legal documents, + replacing previous data mainly originating from the inventions of + Shanks & Pottenger. This has resulted in adjustments ranging from + 30 to 90 minutes in either direction over at least two dozen + distinct periods ranging from one day to several years in length. + A mere handful of pre-1991 transitions are unaffected; data since + then has come from more reliable contemporaneous reporting. These + changes affect various timestamps in 1920-1923, 1936, 1939, + 1942-1943, 1959, 1966-1970, 1972, 1974-1980, and 1988-1990. + Additionally, Uruguay's pre-standard-time UT offset has been + adjusted westward by 7 seconds, from UT-03:44:44 to UT-03:44:51, to + match the location of the Observatory of the National Meteorological + Institute in Montevideo. + (Thanks to Jeremie Bonjour, Tim Parenti, and Michael Deckers.) + + Enderbury and Kiritimati skipped New Year's Eve 1994, not + New Year's Day 1995. (Thanks to Kerry Shetline.) + + Fix the 1912-01-01 transition for Portugual and its colonies. + This transition was at 00:00 according to the new UT offset, not + according to the old one. Also assume that Cape Verde switched on + the same date as the rest, not in 1907. This affects + Africa/Bissau, Africa/Sao_Tome, Asia/Macau, Atlantic/Azores, + Atlantic/Cape_Verde, Atlantic/Madeira, and Europe/Lisbon. + (Thanks to Michael Deckers.) + + Fix an off-by-1 error for pre-1913 timestamps in Jamaica and in + Turks & Caicos. + + Changes to past time zone abbreviations + + MMT took effect in Uruguay from 1908-06-10, not 1898-06-28. There + is no clock change associated with the transition. + + Changes to build procedure + + The new DATAFORM macro in the Makefile lets the installer choose + among three source data formats. The idea is to lessen downstream + disruption when data formats are improved. + + * DATAFORM=vanguard installs from the latest, bleeding-edge + format. DATAFORM=main (the default) installs from the format + used in the 'africa' etc. files. DATAFORM=rearguard installs + from a trailing-edge format. Eventually, elements of today's + vanguard format should move to the main format, and similarly + the main format's features should eventually move to the + rearguard format. + + * In the current version, the main and rearguard formats are + identical and match that of 2018c, so this change does not + affect default behavior. The vanguard format currently contains + one feature not in the main format: negative SAVE values. This + improves support for Ireland, which uses Irish Standard Time + (IST, UTC+01) in summer and GMT (UTC) in winter. tzcode has + supported negative SAVE values for decades, and this feature + should move to the main format soon. However, it will not move + to the rearguard format for quite some time because some + downstream parsers do not support it. + + * The build procedure constructs three files vanguard.zi, main.zi, + and rearguard.zi, one for each format. The files represent the + same data as closely as the formats allow. These three files + are intended for downstream data consumers and are not + installed. Zoneinfo parsers that do not support negative SAVE values + should start using rearguard.zi, so that they will be unaffected + when the negative-DST feature moves from vanguard to main. + Bleeding-edge Zoneinfo parsers that support the new features + already can use vanguard.zi; in this respect, current tzcode is + bleeding-edge. + + The Makefile should now be safe for parallelized builds, and 'make + -j to2050new.tzs' is now much faster on a multiprocessor host + with GNU Make. + + When built with -DSUPPRESS_TZDIR, the tzcode library no longer + prepends TZDIR/ to file names that do not begin with '/'. This is + not recommended for general use, due to its security implications. + (From a suggestion by Manuela Friedrich.) + + Changes to code + + zic now accepts subsecond precision in expressions like + 00:19:32.13, which is approximately the legal time of the + Netherlands from 1835 to 1937. However, because it is + questionable whether the few recorded uses of non-integer offsets + had subsecond precision in practice, there are no plans for tzdata + to use this feature. (Thanks to Steve Allen for pointing out + the limitations of historical data in this area.) + + The code is a bit more portable to MS-Windows. Installers can + compile with -DRESERVE_STD_EXT_IDS on MS-Windows platforms that + reserve identifiers like 'localtime'. (Thanks to Manuela + Friedrich). + + Changes to documentation and commentary + + theory.html now outlines tzdb's extensions to POSIX's model for + civil time, and has a section "POSIX features no longer needed" + that lists POSIX API components that are now vestigial. + (From suggestions by Steve Summit.) It also better distinguishes + time zones from tz regions. (From a suggestion by Guy Harris.) + + Commentary is now more consistent about using the phrase "daylight + saving time", to match the C name tm_isdst. Daylight saving time + need not occur in summer, and need not have a positive offset from + standard time. + + Commentary about historical transitions in Uruguay has been expanded + with links to many relevant legal documents. + (Thanks to Tim Parenti.) + + Commentary now uses some non-ASCII characters with Unicode value + less than U+0100, as they can be useful and should work even with + older editors such as XEmacs. + + Release 2018c - 2018-01-22 23:00:44 -0800 Briefly: - Revert Irish changes that relied on negative DST offsets. + Revert Irish changes that relied on negative SAVE values. Changes to tm_isdst @@ -14,8 +151,8 @@ Release 2018c - 2018-01-22 23:00:44 -0800 struct tm type. This reversion is intended to be a temporary workaround for problems discovered with downstream uses of releases 2018a and 2018b, which implemented Irish time by using - negative DST offsets in the Eire rules of the 'europe' file. - Although negative DST offsets have been part of tzcode for many + negative SAVE values in the Eire rules of the 'europe' file. + Although negative SAVE values have been part of tzcode for many years and are supported by many platforms, they were not documented before 2018a and ICU and OpenJDK do not currently support them. A mechanism to export data to platforms lacking @@ -900,7 +1037,7 @@ Release 2016b - 2016-03-12 17:30:14 -0800 Comments in zone tables have been improved. (Thanks to J William Piggott.) tzselect again limits its menu comments so that menus fit on a - 24x80 alphanumeric display. + 24×80 alphanumeric display. A new web page tz-how-to.html. (Thanks to Bill Seymour.) Modified: vendor/tzdata/dist/africa ============================================================================== --- vendor/tzdata/dist/africa Sat Mar 24 04:21:22 2018 (r331478) +++ vendor/tzdata/dist/africa Sat Mar 24 04:41:49 2018 (r331479) @@ -115,13 +115,13 @@ Zone Africa/Algiers 0:12:12 - LMT 1891 Mar 15 0:01 # Cape Verde / Cabo Verde # +# From Paul Eggert (2018-02-16): # Shanks gives 1907 for the transition to +02. -# Perhaps the 1911-05-26 Portuguese decree -# https://dre.pt/pdf1sdip/1911/05/12500/23132313.pdf -# merely made it official? +# For now, ignore that and follow the 1911-05-26 Portuguese decree +# (see Europe/Lisbon). # # Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone Atlantic/Cape_Verde -1:34:04 - LMT 1907 # Praia +Zone Atlantic/Cape_Verde -1:34:04 - LMT 1912 Jan 01 2:00u # Praia -2:00 - -02 1942 Sep -2:00 1:00 -01 1945 Oct 15 -2:00 - -02 1975 Nov 25 2:00 @@ -370,15 +370,34 @@ Zone Africa/Cairo 2:05:09 - LMT 1900 Oct # See Africa/Abidjan. # Ghana -# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S + +# From Paul Eggert (2018-01-30): # Whitman says DST was observed from 1931 to "the present"; -# Shanks & Pottenger say 1936 to 1942; -# and September 1 to January 1 is given by: -# Scott Keltie J, Epstein M (eds), The Statesman's Year-Book, -# 57th ed. Macmillan, London (1920), OCLC 609408015, pp xxviii. -# For lack of better info, assume DST was observed from 1920 to 1942. -Rule Ghana 1920 1942 - Sep 1 0:00 0:20 GHST -Rule Ghana 1920 1942 - Dec 31 0:00 0 GMT +# Shanks & Pottenger say 1936 to 1942 with 20 minutes of DST, +# with transitions on 09-01 and 12-31 at 00:00. +# Page 33 of Parish GCB, Colonial Reports - Annual. No. 1066. Gold +# Coast. Report for 1919. (March 1921), OCLC 784024077 +# http://libsysdigi.library.illinois.edu/ilharvest/africana/books2011-05/5530214/5530214_1919/5530214_1919_opt.pdf +# lists the Determination of the Time Ordinance, 1919, No. 18, +# "to advance the time observed locally by the space of twenty minutes +# during the last four months of each year; the object in view being +# to extend during those months the period of daylight-time available +# for evening recreation after office hours." +# Vanessa Ogle, The Global Transformation of Time, 1870-1950 (2015), p 33, +# writes "In 1919, the Gold Coast (Ghana as of 1957) made Greenwich +# time its legal time and simultaneously legalized a summer time of +# UTC - 00:20 minutes from March to October."; a footnote lists +# the ordinance as being dated 1919-11-24. +# The Crown Colonist, Volume 12 (1942), p 176, says "the Government +# intend advancing Gold Coast time half an hour ahead of G.M.T. +# The actual date of the alteration has not yet been announced." +# These sources are incomplete and contradictory. Possibly what is +# now Ghana observed different DST regimes in different years. For +# lack of better info, use Shanks except treat the minus sign as a +# typo, and assume DST started in 1920 not 1936. +# Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S +Rule Ghana 1920 1942 - Sep 1 0:00 0:20 - +Rule Ghana 1920 1942 - Dec 31 0:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Africa/Accra -0:00:52 - LMT 1918 0:00 Ghana GMT/+0020 @@ -388,13 +407,13 @@ Zone Africa/Accra -0:00:52 - LMT 1918 # Guinea-Bissau # +# From Paul Eggert (2018-02-16): # Shanks gives 1911-05-26 for the transition to WAT, # evidently confusing the date of the Portuguese decree -# https://dre.pt/pdf1sdip/1911/05/12500/23132313.pdf -# with the date that it took effect, namely 1912-01-01. +# (see Europe/Lisbon) with the date that it took effect. # # Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone Africa/Bissau -1:02:20 - LMT 1912 Jan 1 +Zone Africa/Bissau -1:02:20 - LMT 1912 Jan 1 1:00u -1:00 - -01 1975 0:00 - GMT @@ -590,9 +609,9 @@ Zone Africa/Tripoli 0:52:44 - LMT 1920 # at 2am (or 02:00) local time..." # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Mauritius 1982 only - Oct 10 0:00 1:00 S +Rule Mauritius 1982 only - Oct 10 0:00 1:00 - Rule Mauritius 1983 only - Mar 21 0:00 0 - -Rule Mauritius 2008 only - Oct lastSun 2:00 1:00 S +Rule Mauritius 2008 only - Oct lastSun 2:00 1:00 - Rule Mauritius 2009 only - Mar lastSun 2:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Indian/Mauritius 3:50:00 - LMT 1907 # Port Louis @@ -1037,6 +1056,8 @@ Zone Indian/Reunion 3:41:52 - LMT 1911 Jun # Saint-Den # São Tomé and Príncipe +# See Europe/Lisbon for info about the 1912 transition. + # From Steffen Thorsen (2018-01-08): # Multiple sources tell that São Tomé changed from UTC to UTC+1 as # they entered the year 2018. @@ -1045,7 +1066,7 @@ Zone Indian/Reunion 3:41:52 - LMT 1911 Jun # Saint-Den # http://www.mnec.gov.st/index.php/publicacoes/documentos/file/90-decreto-lei-n-25-2017 Zone Africa/Sao_Tome 0:26:56 - LMT 1884 - -0:36:45 - LMT 1912 # Lisbon Mean Time + -0:36:45 - LMT 1912 Jan 1 00:00u # Lisbon MT 0:00 - GMT 2018 Jan 1 01:00 1:00 - WAT Modified: vendor/tzdata/dist/antarctica ============================================================================== --- vendor/tzdata/dist/antarctica Sat Mar 24 04:21:22 2018 (r331478) +++ vendor/tzdata/dist/antarctica Sat Mar 24 04:41:49 2018 (r331479) @@ -75,7 +75,8 @@ Zone Antarctica/Casey 0 - -00 1969 8:00 - +08 2011 Oct 28 2:00 11:00 - +11 2012 Feb 21 17:00u 8:00 - +08 2016 Oct 22 - 11:00 - +11 + 11:00 - +11 2018 Mar 11 4:00 + 8:00 - +08 Zone Antarctica/Davis 0 - -00 1957 Jan 13 7:00 - +07 1964 Nov 0 - -00 1969 Feb Modified: vendor/tzdata/dist/asia ============================================================================== --- vendor/tzdata/dist/asia Sat Mar 24 04:21:22 2018 (r331478) +++ vendor/tzdata/dist/asia Sat Mar 24 04:41:49 2018 (r331479) @@ -69,13 +69,13 @@ Rule EUAsia 1981 max - Mar lastSun 1:00u 1:00 S Rule EUAsia 1979 1995 - Sep lastSun 1:00u 0 - Rule EUAsia 1996 max - Oct lastSun 1:00u 0 - -Rule E-EurAsia 1981 max - Mar lastSun 0:00 1:00 S +Rule E-EurAsia 1981 max - Mar lastSun 0:00 1:00 - Rule E-EurAsia 1979 1995 - Sep lastSun 0:00 0 - Rule E-EurAsia 1996 max - Oct lastSun 0:00 0 - -Rule RussiaAsia 1981 1984 - Apr 1 0:00 1:00 S +Rule RussiaAsia 1981 1984 - Apr 1 0:00 1:00 - Rule RussiaAsia 1981 1983 - Oct 1 0:00 0 - Rule RussiaAsia 1984 1995 - Sep lastSun 2:00s 0 - -Rule RussiaAsia 1985 2010 - Mar lastSun 2:00s 1:00 S +Rule RussiaAsia 1985 2010 - Mar lastSun 2:00s 1:00 - Rule RussiaAsia 1996 2010 - Oct lastSun 2:00s 0 - # Afghanistan @@ -110,7 +110,7 @@ Zone Asia/Kabul 4:36:48 - LMT 1890 # (brief) # http://www.worldtimezone.com/dst_news/dst_news_armenia03.html # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Armenia 2011 only - Mar lastSun 2:00s 1:00 S +Rule Armenia 2011 only - Mar lastSun 2:00s 1:00 - Rule Armenia 2011 only - Oct lastSun 2:00s 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Yerevan 2:58:00 - LMT 1924 May 2 @@ -136,7 +136,7 @@ Zone Asia/Yerevan 2:58:00 - LMT 1924 May 2 # http://en.apa.az/xeber_azerbaijan_abolishes_daylight_savings_ti_240862.html # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Azer 1997 2015 - Mar lastSun 4:00 1:00 S +Rule Azer 1997 2015 - Mar lastSun 4:00 1:00 - Rule Azer 1997 2015 - Oct lastSun 5:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Baku 3:19:24 - LMT 1924 May 2 @@ -223,7 +223,7 @@ Zone Asia/Baku 3:19:24 - LMT 1924 May 2 # http://www.worldtimezone.com/dst_news/dst_news_bangladesh06.html # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Dhaka 2009 only - Jun 19 23:00 1:00 S +Rule Dhaka 2009 only - Jun 19 23:00 1:00 - Rule Dhaka 2009 only - Dec 31 24:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -764,8 +764,9 @@ Rule Macau 1974 1977 - Oct Sun>=15 3:30 0 S Rule Macau 1975 1977 - Apr Sun>=15 3:30 1:00 D Rule Macau 1978 1980 - Apr Sun>=15 0:00 1:00 D Rule Macau 1978 1980 - Oct Sun>=15 0:00 0 S +# See Europe/Lisbon for info about the 1912 transition. # Zone NAME GMTOFF RULES FORMAT [UNTIL] -Zone Asia/Macau 7:34:20 - LMT 1912 Jan 1 +Zone Asia/Macau 7:34:20 - LMT 1911 Dec 31 16:00u 8:00 Macau C%sT @@ -1106,61 +1107,61 @@ Zone Asia/Jayapura 9:22:48 - LMT 1932 Nov # thirtieth day of Shahrivar. # # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Iran 1978 1980 - Mar 21 0:00 1:00 D -Rule Iran 1978 only - Oct 21 0:00 0 S -Rule Iran 1979 only - Sep 19 0:00 0 S -Rule Iran 1980 only - Sep 23 0:00 0 S -Rule Iran 1991 only - May 3 0:00 1:00 D -Rule Iran 1992 1995 - Mar 22 0:00 1:00 D -Rule Iran 1991 1995 - Sep 22 0:00 0 S -Rule Iran 1996 only - Mar 21 0:00 1:00 D -Rule Iran 1996 only - Sep 21 0:00 0 S -Rule Iran 1997 1999 - Mar 22 0:00 1:00 D -Rule Iran 1997 1999 - Sep 22 0:00 0 S -Rule Iran 2000 only - Mar 21 0:00 1:00 D -Rule Iran 2000 only - Sep 21 0:00 0 S -Rule Iran 2001 2003 - Mar 22 0:00 1:00 D -Rule Iran 2001 2003 - Sep 22 0:00 0 S -Rule Iran 2004 only - Mar 21 0:00 1:00 D -Rule Iran 2004 only - Sep 21 0:00 0 S -Rule Iran 2005 only - Mar 22 0:00 1:00 D -Rule Iran 2005 only - Sep 22 0:00 0 S -Rule Iran 2008 only - Mar 21 0:00 1:00 D -Rule Iran 2008 only - Sep 21 0:00 0 S -Rule Iran 2009 2011 - Mar 22 0:00 1:00 D -Rule Iran 2009 2011 - Sep 22 0:00 0 S -Rule Iran 2012 only - Mar 21 0:00 1:00 D -Rule Iran 2012 only - Sep 21 0:00 0 S -Rule Iran 2013 2015 - Mar 22 0:00 1:00 D -Rule Iran 2013 2015 - Sep 22 0:00 0 S -Rule Iran 2016 only - Mar 21 0:00 1:00 D -Rule Iran 2016 only - Sep 21 0:00 0 S -Rule Iran 2017 2019 - Mar 22 0:00 1:00 D -Rule Iran 2017 2019 - Sep 22 0:00 0 S -Rule Iran 2020 only - Mar 21 0:00 1:00 D -Rule Iran 2020 only - Sep 21 0:00 0 S -Rule Iran 2021 2023 - Mar 22 0:00 1:00 D -Rule Iran 2021 2023 - Sep 22 0:00 0 S -Rule Iran 2024 only - Mar 21 0:00 1:00 D -Rule Iran 2024 only - Sep 21 0:00 0 S -Rule Iran 2025 2027 - Mar 22 0:00 1:00 D -Rule Iran 2025 2027 - Sep 22 0:00 0 S -Rule Iran 2028 2029 - Mar 21 0:00 1:00 D -Rule Iran 2028 2029 - Sep 21 0:00 0 S -Rule Iran 2030 2031 - Mar 22 0:00 1:00 D -Rule Iran 2030 2031 - Sep 22 0:00 0 S -Rule Iran 2032 2033 - Mar 21 0:00 1:00 D -Rule Iran 2032 2033 - Sep 21 0:00 0 S -Rule Iran 2034 2035 - Mar 22 0:00 1:00 D -Rule Iran 2034 2035 - Sep 22 0:00 0 S +Rule Iran 1978 1980 - Mar 21 0:00 1:00 - +Rule Iran 1978 only - Oct 21 0:00 0 - +Rule Iran 1979 only - Sep 19 0:00 0 - +Rule Iran 1980 only - Sep 23 0:00 0 - +Rule Iran 1991 only - May 3 0:00 1:00 - +Rule Iran 1992 1995 - Mar 22 0:00 1:00 - +Rule Iran 1991 1995 - Sep 22 0:00 0 - +Rule Iran 1996 only - Mar 21 0:00 1:00 - +Rule Iran 1996 only - Sep 21 0:00 0 - +Rule Iran 1997 1999 - Mar 22 0:00 1:00 - +Rule Iran 1997 1999 - Sep 22 0:00 0 - +Rule Iran 2000 only - Mar 21 0:00 1:00 - +Rule Iran 2000 only - Sep 21 0:00 0 - +Rule Iran 2001 2003 - Mar 22 0:00 1:00 - +Rule Iran 2001 2003 - Sep 22 0:00 0 - +Rule Iran 2004 only - Mar 21 0:00 1:00 - +Rule Iran 2004 only - Sep 21 0:00 0 - +Rule Iran 2005 only - Mar 22 0:00 1:00 - +Rule Iran 2005 only - Sep 22 0:00 0 - +Rule Iran 2008 only - Mar 21 0:00 1:00 - +Rule Iran 2008 only - Sep 21 0:00 0 - +Rule Iran 2009 2011 - Mar 22 0:00 1:00 - +Rule Iran 2009 2011 - Sep 22 0:00 0 - +Rule Iran 2012 only - Mar 21 0:00 1:00 - +Rule Iran 2012 only - Sep 21 0:00 0 - +Rule Iran 2013 2015 - Mar 22 0:00 1:00 - +Rule Iran 2013 2015 - Sep 22 0:00 0 - +Rule Iran 2016 only - Mar 21 0:00 1:00 - +Rule Iran 2016 only - Sep 21 0:00 0 - +Rule Iran 2017 2019 - Mar 22 0:00 1:00 - +Rule Iran 2017 2019 - Sep 22 0:00 0 - +Rule Iran 2020 only - Mar 21 0:00 1:00 - +Rule Iran 2020 only - Sep 21 0:00 0 - +Rule Iran 2021 2023 - Mar 22 0:00 1:00 - +Rule Iran 2021 2023 - Sep 22 0:00 0 - +Rule Iran 2024 only - Mar 21 0:00 1:00 - +Rule Iran 2024 only - Sep 21 0:00 0 - +Rule Iran 2025 2027 - Mar 22 0:00 1:00 - +Rule Iran 2025 2027 - Sep 22 0:00 0 - +Rule Iran 2028 2029 - Mar 21 0:00 1:00 - +Rule Iran 2028 2029 - Sep 21 0:00 0 - +Rule Iran 2030 2031 - Mar 22 0:00 1:00 - +Rule Iran 2030 2031 - Sep 22 0:00 0 - +Rule Iran 2032 2033 - Mar 21 0:00 1:00 - +Rule Iran 2032 2033 - Sep 21 0:00 0 - +Rule Iran 2034 2035 - Mar 22 0:00 1:00 - +Rule Iran 2034 2035 - Sep 22 0:00 0 - # # The following rules are approximations starting in the year 2038. # These are the best post-2037 approximations available, given the # restrictions of a single rule using a Gregorian-based data format. # At some point this table will need to be extended, though quite # possibly Iran will change the rules first. -Rule Iran 2036 max - Mar 21 0:00 1:00 D -Rule Iran 2036 max - Sep 21 0:00 0 S +Rule Iran 2036 max - Mar 21 0:00 1:00 - +Rule Iran 2036 max - Sep 21 0:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Tehran 3:25:44 - LMT 1916 @@ -1196,17 +1197,17 @@ Zone Asia/Tehran 3:25:44 - LMT 1916 # https://www.timeanddate.com/news/time/iraq-dumps-daylight-saving.html # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Iraq 1982 only - May 1 0:00 1:00 D -Rule Iraq 1982 1984 - Oct 1 0:00 0 S -Rule Iraq 1983 only - Mar 31 0:00 1:00 D -Rule Iraq 1984 1985 - Apr 1 0:00 1:00 D -Rule Iraq 1985 1990 - Sep lastSun 1:00s 0 S -Rule Iraq 1986 1990 - Mar lastSun 1:00s 1:00 D +Rule Iraq 1982 only - May 1 0:00 1:00 - +Rule Iraq 1982 1984 - Oct 1 0:00 0 - +Rule Iraq 1983 only - Mar 31 0:00 1:00 - +Rule Iraq 1984 1985 - Apr 1 0:00 1:00 - +Rule Iraq 1985 1990 - Sep lastSun 1:00s 0 - +Rule Iraq 1986 1990 - Mar lastSun 1:00s 1:00 - # IATA SSIM (1991/1996) says Apr 1 12:01am UTC; guess the ':01' is a typo. # Shanks & Pottenger say Iraq did not observe DST 1992/1997; ignore this. # -Rule Iraq 1991 2007 - Apr 1 3:00s 1:00 D -Rule Iraq 1991 2007 - Oct 1 3:00s 0 S +Rule Iraq 1991 2007 - Apr 1 3:00s 1:00 - +Rule Iraq 1991 2007 - Oct 1 3:00s 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Baghdad 2:57:40 - LMT 1890 2:57:36 - BMT 1918 # Baghdad Mean Time? @@ -1478,8 +1479,7 @@ Rule Japan 1950 1951 - May Sat>=1 24:00 1:00 D # From Hideyuki Suzuki (1998-11-09): # 'Tokyo' usually stands for the former location of Tokyo Astronomical -# Observatory: 139 degrees 44' 40.90" E (9h 18m 58.727s), -# 35 degrees 39' 16.0" N. +# Observatory: 139° 44' 40.90" E (9h 18m 58.727s), 35° 39' 16.0" N. # This data is from 'Rika Nenpyou (Chronological Scientific Tables) 1996' # edited by National Astronomical Observatory of Japan.... # JST (Japan Standard Time) has been used since 1888-01-01 00:00 (JST). @@ -1487,10 +1487,10 @@ Rule Japan 1950 1951 - May Sat>=1 24:00 1:00 D # From Hideyuki Suzuki (1998-11-16): # The ordinance No. 51 (1886) established "standard time" in Japan, -# which stands for the time on 135 degrees E. +# which stands for the time on 135° E. # In the ordinance No. 167 (1895), "standard time" was renamed to "central # standard time". And the same ordinance also established "western standard -# time", which stands for the time on 120 degrees E.... But "western standard +# time", which stands for the time on 120° E.... But "western standard # time" was abolished in the ordinance No. 529 (1937). In the ordinance No. # 167, there is no mention regarding for what place western standard time is # standard.... @@ -1903,9 +1903,9 @@ Zone Asia/Oral 3:25:24 - LMT 1924 May 2 # or Ural'sk # From 2005-08-12 our GMT-offset is +6, w/o any daylight saving. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Kyrgyz 1992 1996 - Apr Sun>=7 0:00s 1:00 S +Rule Kyrgyz 1992 1996 - Apr Sun>=7 0:00s 1:00 - Rule Kyrgyz 1992 1996 - Sep lastSun 0:00 0 - -Rule Kyrgyz 1997 2005 - Mar lastSun 2:30 1:00 S +Rule Kyrgyz 1997 2005 - Mar lastSun 2:30 1:00 - Rule Kyrgyz 1997 2004 - Oct lastSun 2:30 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Bishkek 4:58:24 - LMT 1924 May 2 @@ -2037,7 +2037,7 @@ Zone Asia/Beirut 2:22:00 - LMT 1880 # Malaysia # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule NBorneo 1935 1941 - Sep 14 0:00 0:20 TS # one-Third Summer +Rule NBorneo 1935 1941 - Sep 14 0:00 0:20 - Rule NBorneo 1935 1941 - Dec 14 0:00 0 - # # peninsular Malaysia @@ -2182,7 +2182,7 @@ Zone Indian/Maldives 4:54:00 - LMT 1880 # Malé # http://zasag.mn/news/view/8969 # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Mongol 1983 1984 - Apr 1 0:00 1:00 S +Rule Mongol 1983 1984 - Apr 1 0:00 1:00 - Rule Mongol 1983 only - Oct 1 0:00 0 - # Shanks & Pottenger and IATA SSIM say 1990s switches occurred at 00:00, # but McDow says the 2001 switches occurred at 02:00. Also, IATA SSIM @@ -2199,13 +2199,13 @@ Rule Mongol 1983 only - Oct 1 0:00 0 - # Mongolian Government meeting has concluded today to cancel daylight # saving time adoption in Mongolia. Source: http://zasag.mn/news/view/16192 -Rule Mongol 1985 1998 - Mar lastSun 0:00 1:00 S +Rule Mongol 1985 1998 - Mar lastSun 0:00 1:00 - Rule Mongol 1984 1998 - Sep lastSun 0:00 0 - # IATA SSIM (1999-09) says Mongolia no longer observes DST. -Rule Mongol 2001 only - Apr lastSat 2:00 1:00 S +Rule Mongol 2001 only - Apr lastSat 2:00 1:00 - Rule Mongol 2001 2006 - Sep lastSat 2:00 0 - -Rule Mongol 2002 2006 - Mar lastSat 2:00 1:00 S -Rule Mongol 2015 2016 - Mar lastSat 2:00 1:00 S +Rule Mongol 2002 2006 - Mar lastSat 2:00 1:00 - +Rule Mongol 2015 2016 - Mar lastSat 2:00 1:00 - Rule Mongol 2015 2016 - Sep lastSat 0:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -2639,9 +2639,6 @@ Zone Asia/Karachi 4:28:12 - LMT 1907 # [Google translation]: "The Council also decided to start daylight # saving in Palestine as of one o'clock on Saturday morning, # 2016-03-26, to provide the clock 60 minutes ahead." -# -# From Paul Eggert (2016-03-12): -# Predict spring transitions on March's last Saturday at 01:00 from now on. # From Sharef Mustafa (2016-10-19): # [T]he Palestinian cabinet decision (Mar 8th 2016) published on @@ -2658,6 +2655,16 @@ Zone Asia/Karachi 4:28:12 - LMT 1907 # https://www.timeanddate.com/time/change/gaza-strip/gaza # https://www.timeanddate.com/time/change/west-bank/hebron +# From Sharef Mustafa (2018-03-16): +# Palestine summer time will start on Mar 24th 2018 by advancing the +# clock by 60 minutes as per Palestinian cabinet decision published on +# the offical website, though the decree did not specify the exact +# time of the time shift. +# http://www.palestinecabinet.gov.ps/Website/AR/NDecrees/ViewFile.ashx?ID=e7a42ab7-ee23-435a-b9c8-a4f7e81f3817 +# +# From Paul Eggert (2018-03-16): +# For 2016 on, predict spring transitions on March's fourth Saturday at 01:00. + # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S Rule EgyptAsia 1957 only - May 10 0:00 1:00 S Rule EgyptAsia 1957 1958 - Oct 1 0:00 0 - @@ -2687,7 +2694,7 @@ Rule Palestine 2012 only - Sep 21 1:00 0 - Rule Palestine 2013 only - Sep Fri>=21 0:00 0 - Rule Palestine 2014 2015 - Oct Fri>=21 0:00 0 - Rule Palestine 2015 only - Mar lastFri 24:00 1:00 S -Rule Palestine 2016 max - Mar lastSat 1:00 1:00 S +Rule Palestine 2016 max - Mar Sat>=22 1:00 1:00 S Rule Palestine 2016 max - Oct lastSat 1:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -2737,11 +2744,11 @@ Zone Asia/Hebron 2:20:23 - LMT 1900 Oct # http://www.philstar.com/headlines/2014/08/05/1354152/pnoy-urged-declare-use-daylight-saving-time # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Phil 1936 only - Nov 1 0:00 1:00 S +Rule Phil 1936 only - Nov 1 0:00 1:00 - Rule Phil 1937 only - Feb 1 0:00 0 - -Rule Phil 1954 only - Apr 12 0:00 1:00 S +Rule Phil 1954 only - Apr 12 0:00 1:00 - Rule Phil 1954 only - Jul 1 0:00 0 - -Rule Phil 1978 only - Mar 22 0:00 1:00 S +Rule Phil 1978 only - Mar 22 0:00 1:00 - Rule Phil 1978 only - Sep 21 0:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Asia/Manila -15:56:00 - LMT 1844 Dec 31 @@ -3097,9 +3104,9 @@ Zone Asia/Tashkent 4:37:11 - LMT 1924 May 2 # and is the basis for the information below. # # The 1906 transition was effective July 1 and standardized Indochina to -# Phù Liễn Observatory, legally 104 deg. 17'17" east of Paris. +# Phù Liễn Observatory, legally 104° 17' 17" east of Paris. # It's unclear whether this meant legal Paris Mean Time (00:09:21) or -# the Paris Meridian (2 deg. 20'14.03" E); the former yields 07:06:30.1333... +# the Paris Meridian (2° 20' 14.03" E); the former yields 07:06:30.1333... # and the latter 07:06:29.333... so either way it rounds to 07:06:30, # which is used below even though the modern-day Phù Liễn Observatory # is closer to 07:06:31. Abbreviate Phù Liễn Mean Time as PLMT. Modified: vendor/tzdata/dist/australasia ============================================================================== --- vendor/tzdata/dist/australasia Sat Mar 24 04:21:22 2018 (r331478) +++ vendor/tzdata/dist/australasia Sat Mar 24 04:41:49 2018 (r331479) @@ -196,20 +196,20 @@ Zone Australia/Broken_Hill 9:25:48 - LMT 1895 Feb # Lord Howe Island # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule LH 1981 1984 - Oct lastSun 2:00 1:00 D -Rule LH 1982 1985 - Mar Sun>=1 2:00 0 S -Rule LH 1985 only - Oct lastSun 2:00 0:30 D -Rule LH 1986 1989 - Mar Sun>=15 2:00 0 S -Rule LH 1986 only - Oct 19 2:00 0:30 D -Rule LH 1987 1999 - Oct lastSun 2:00 0:30 D -Rule LH 1990 1995 - Mar Sun>=1 2:00 0 S -Rule LH 1996 2005 - Mar lastSun 2:00 0 S -Rule LH 2000 only - Aug lastSun 2:00 0:30 D -Rule LH 2001 2007 - Oct lastSun 2:00 0:30 D -Rule LH 2006 only - Apr Sun>=1 2:00 0 S -Rule LH 2007 only - Mar lastSun 2:00 0 S -Rule LH 2008 max - Apr Sun>=1 2:00 0 S -Rule LH 2008 max - Oct Sun>=1 2:00 0:30 D +Rule LH 1981 1984 - Oct lastSun 2:00 1:00 - +Rule LH 1982 1985 - Mar Sun>=1 2:00 0 - +Rule LH 1985 only - Oct lastSun 2:00 0:30 - +Rule LH 1986 1989 - Mar Sun>=15 2:00 0 - +Rule LH 1986 only - Oct 19 2:00 0:30 - +Rule LH 1987 1999 - Oct lastSun 2:00 0:30 - +Rule LH 1990 1995 - Mar Sun>=1 2:00 0 - +Rule LH 1996 2005 - Mar lastSun 2:00 0 - +Rule LH 2000 only - Aug lastSun 2:00 0:30 - +Rule LH 2001 2007 - Oct lastSun 2:00 0:30 - +Rule LH 2006 only - Apr Sun>=1 2:00 0 - +Rule LH 2007 only - Mar lastSun 2:00 0 - +Rule LH 2008 max - Apr Sun>=1 2:00 0 - +Rule LH 2008 max - Oct Sun>=1 2:00 0:30 - Zone Australia/Lord_Howe 10:36:20 - LMT 1895 Feb 10:00 - AEST 1981 Mar 10:30 LH +1030/+1130 1985 Jul @@ -367,15 +367,15 @@ Zone Indian/Cocos 6:27:40 - LMT 1900 # practice than guessing no DST. # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule Fiji 1998 1999 - Nov Sun>=1 2:00 1:00 S +Rule Fiji 1998 1999 - Nov Sun>=1 2:00 1:00 - Rule Fiji 1999 2000 - Feb lastSun 3:00 0 - -Rule Fiji 2009 only - Nov 29 2:00 1:00 S +Rule Fiji 2009 only - Nov 29 2:00 1:00 - Rule Fiji 2010 only - Mar lastSun 3:00 0 - -Rule Fiji 2010 2013 - Oct Sun>=21 2:00 1:00 S +Rule Fiji 2010 2013 - Oct Sun>=21 2:00 1:00 - Rule Fiji 2011 only - Mar Sun>=1 3:00 0 - Rule Fiji 2012 2013 - Jan Sun>=18 3:00 0 - Rule Fiji 2014 only - Jan Sun>=18 2:00 0 - -Rule Fiji 2014 max - Nov Sun>=1 2:00 1:00 S +Rule Fiji 2014 max - Nov Sun>=1 2:00 1:00 - Rule Fiji 2015 max - Jan Sun>=14 3:00 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] Zone Pacific/Fiji 11:55:44 - LMT 1915 Oct 26 # Suva @@ -406,11 +406,11 @@ Zone Pacific/Tarawa 11:32:04 - LMT 1901 # Bairiki 12:00 - +12 Zone Pacific/Enderbury -11:24:20 - LMT 1901 -12:00 - -12 1979 Oct - -11:00 - -11 1995 + -11:00 - -11 1994 Dec 31 13:00 - +13 Zone Pacific/Kiritimati -10:29:20 - LMT 1901 -10:40 - -1040 1979 Oct - -10:00 - -10 1995 + -10:00 - -10 1994 Dec 31 14:00 - +14 # N Mariana Is @@ -447,9 +447,9 @@ Zone Pacific/Nauru 11:07:40 - LMT 1921 Jan 15 # Uaobe # New Caledonia # Rule NAME FROM TO TYPE IN ON AT SAVE LETTER/S -Rule NC 1977 1978 - Dec Sun>=1 0:00 1:00 S +Rule NC 1977 1978 - Dec Sun>=1 0:00 1:00 - Rule NC 1978 1979 - Feb 27 0:00 0 - -Rule NC 1996 only - Dec 1 2:00s 1:00 S +Rule NC 1996 only - Dec 1 2:00s 1:00 - # Shanks & Pottenger say the following was at 2:00; go with IATA. Rule NC 1997 only - Mar 2 2:00s 0 - # Zone NAME GMTOFF RULES FORMAT [UNTIL] @@ -469,27 +469,28 @@ Rule NZ 1929 1933 - Mar Sun>=15 2:00 0 M Rule NZ 1934 1940 - Apr lastSun 2:00 0 M Rule NZ 1934 1940 - Sep lastSun 2:00 0:30 S Rule NZ 1946 only - Jan 1 0:00 0 S -# Since 1957 Chatham has been 45 minutes ahead of NZ, but there's no -# convenient single notation for the date and time of this transition -# so we must duplicate the Rule lines. +# Since 1957 Chatham has been 45 minutes ahead of NZ, but until 2018a +# there was no documented single notation for the date and time of this +# transition. Duplicate the Rule lines for now, to give the 2018a change *** DIFF OUTPUT TRUNCATED AT 1000 LINES *** From owner-svn-src-vendor@freebsd.org Sat Mar 24 04:42:57 2018 Return-Path: Delivered-To: svn-src-vendor@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 82AA4F6B440; Sat, 24 Mar 2018 04:42:57 +0000 (UTC) (envelope-from philip@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 2C80F782AD; Sat, 24 Mar 2018 04:42:57 +0000 (UTC) (envelope-from philip@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 0D62C2138; Sat, 24 Mar 2018 04:42:57 +0000 (UTC) (envelope-from philip@FreeBSD.org) Received: from repo.freebsd.org ([127.0.1.37]) by repo.freebsd.org (8.15.2/8.15.2) with ESMTP id w2O4guIF073970; Sat, 24 Mar 2018 04:42:56 GMT (envelope-from philip@FreeBSD.org) Received: (from philip@localhost) by repo.freebsd.org (8.15.2/8.15.2/Submit) id w2O4guQc073969; Sat, 24 Mar 2018 04:42:56 GMT (envelope-from philip@FreeBSD.org) Message-Id: <201803240442.w2O4guQc073969@repo.freebsd.org> X-Authentication-Warning: repo.freebsd.org: philip set sender to philip@FreeBSD.org using -f From: Philip Paeps Date: Sat, 24 Mar 2018 04:42:56 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-vendor@freebsd.org Subject: svn commit: r331480 - vendor/tzdata/tzdata2018d X-SVN-Group: vendor X-SVN-Commit-Author: philip X-SVN-Commit-Paths: vendor/tzdata/tzdata2018d X-SVN-Commit-Revision: 331480 X-SVN-Commit-Repository: base MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-vendor@freebsd.org X-Mailman-Version: 2.1.25 Precedence: list List-Id: SVN commit messages for the vendor work area tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 24 Mar 2018 04:42:57 -0000 Author: philip Date: Sat Mar 24 04:42:56 2018 New Revision: 331480 URL: https://svnweb.freebsd.org/changeset/base/331480 Log: Tag import of tzdata 2018d Added: vendor/tzdata/tzdata2018d/ - copied from r331479, vendor/tzdata/dist/