Oracle® Linux

Release Notes for Unbreakable Enterprise Kernel Release 3 (Beta)

Copyright © 2013, Oracle and/or its affiliates. All rights reserved.

Oracle Legal Notices

Copyright Notice

Copyright © 1994-2013, Oracle and/or its affiliates. All rights reserved.

Trademark Notice

Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.

Intel and Intel Xeon are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. AMD, Opteron, the AMD logo, and the AMD Opteron logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registered trademark of The Open Group.

License Restrictions Warranty/Consequential Damages Disclaimer

This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited.

Warranty Disclaimer

The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing.

Restricted Rights Notice

If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable:

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government.

Hazardous Applications Notice

This software or hardware is developed for general use in a variety of information management applications. It is not developed or intended for use in any inherently dangerous applications, including applications that may create a risk of personal injury. If you use this software or hardware in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure its safe use. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software or hardware in dangerous applications.

Third-Party Content, Products, and Services Disclaimer

This software or hardware and documentation may provide access to or information on content, products, and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to third-party content, products, and services. Oracle Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to your access to or use of third-party content, products, or services.

Alpha and Beta Draft Documentation Notice Disclaimer

If this document is in preproduction status:

This documentation is in preproduction status and is intended for demonstration and preliminary use only. It may not be specific to the hardware on which you are using the software. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to this documentation and will not be responsible for any loss, costs, or damages incurred due to the use of this documentation.

E48380-01

August 2013

Abstract

This document contains information on the Unbreakable Enterprise Kernel Release 3 Beta. This document may be updated after it is released. To check for updates to this document, and to view other Oracle documentation, refer to the Documentation section on the Oracle Technology Network (OTN) Web site:

http://www.oracle.com/technology/documentation/

This document is intended for users and administrators of Oracle Linux. It describes potential issues and the corresponding workarounds you may encounter while using the Unbreakable Enterprise Kernel Release 3 with Oracle Linux 6. Oracle recommends that you read this document before installing or upgrading the Unbreakable Enterprise Kernel Release 3.

Document generated on: 2013-08-28 (revision: 1166)


Table of Contents

Preface
1. New Features and Changes
1.1. Notable Changes
1.2. Xen Improvements
1.3. Driver Updates
1.3.1. Storage Adapter Drivers
1.3.2. Network Adapter Drivers
1.3.3. Miscellaneous Drivers
1.4. Notable Improvements
1.5. Technology Preview
1.6. Compatibility
2. Known Issues
3. Installation and Availability

Preface

The Oracle Linux Unbreakable Enterprise Kernel Release Notes provides a summary of the new features, changes, and known issues in the Unbreakable Enterprise Kernel Release 3 Beta.

Audience

This document is written for system administrators who want to use the Unbreakable Enterprise Kernel with Oracle Linux. It is assumed that readers have a general understanding of the Linux operating system.

Documentation Accessibility

For information about Oracle's commitment to accessibility, visit the Oracle Accessibility Program website at http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc.

Access to Oracle Support

Oracle customers have access to electronic support through My Oracle Support. For information, visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info or visit http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs if you are hearing impaired.

Related Documents

The latest version of this document and other documentation for this product are available at:

http://www.oracle.com/technetwork/server-storage/linux/documentation/index.html.

Conventions

The following text conventions are used in this document:

Convention

Meaning

boldface

Boldface type indicates graphical user interface elements associated with an action, or terms defined in text or the glossary.

italic

Italic type indicates book titles, emphasis, or placeholder variables for which you supply particular values.

monospace

Monospace type indicates commands within a paragraph, URLs, code in examples, text that appears on the screen, or text that you enter.

Chapter 1. New Features and Changes

The Unbreakable Enterprise Kernel Release 3 (UEK R3) is Oracle's third major release of its heavily tested and optimized operating system kernel for Oracle Linux 6 on the x86_64 architecture. It is based on the mainline Linux kernel version 3.8.13.

The 3.8.13-13 release also updates drivers and includes bug and security fixes.

Oracle actively monitors upstream (3.9.*) checkins and applies critical bug and security fixes to UEK3.

Versioning of UEK R3 uses the same versioning model as the mainline Linux kernel version. It is possible that some low-level utilities of the Oracle Linux distribution might not understand the 3.x versioning scheme. However, regular Linux applications are usually neither aware of nor affected by Linux kernel version numbers.

1.1. Notable Changes

The Unbreakable Enterprise Kernel Release 3 (UEK R3) provides the following features relative to UEK R2:

  • The code base has been aligned with mainline Linux 3.8.13.

  • Support for the Intel IVB processor family has been added.

  • Paravirtualization support has been enabled for Oracle Linux guests on Windows Server 2008 Hyper-V or Windows Server 2008 R2 Hyper-V.

  • The LSI MPT3SAS driver has been added to support LSI MPT Fusion based SAS3 (SAS 12.0 Gb/s) controllers.

  • The integrated OpenFabrics Alliance (OFED) 2.0 stack, which supports the following InfiniBand hardware on systems with an x86_64 architecture:

    • Mellanox ConnectX-2 InfiniBand Host Channel Adapters

    • Sun InfiniBand QDR Host Channel Adapter PCIe #375-3696

  • Btrfs in UEK R3 is based on version 3.8, whereas btrfs in that latest update to UEK R2 is based on version 3.0 with some additional backported features, such as support for large metadata blocks and device statistics.

    The following notable features are implemented for the btrfs file system in UEK R3 in addition to those features that are already provided in UEK R2:

    • Changing the RAID profile without unmounting the file system.

    • Subvolume-aware quota groups (qgroups). For more information, see https://btrfs.wiki.kernel.org/index.php/UseCases.

    • The send and receive subcommands of btrfs allow you to record the differences between two subvolumes, which can either be snapshots of the same subvolume or parent and child subvolumes. For an example of using the send/receive feature to implement an efficient incremental backup mechanism, see https://btrfs.wiki.kernel.org/index.php/Incremental_Backup.

    • Cross-subvolume reflinks allow you to clone files across different subvolumes within a single mounted btrfs file system. However, you cannot clone files between subvolumes that are mounted separately.

    • The copy-on-write mechanism can be disabled for an empty file by using the chattr +C command to add the NOCOW file attribute to the file or by creating the file in a directory on which you have set NOCOW.

    • File hole punching, which allows you to mark a portion of a file as unused, so freeing up the associated storage. The FALLOC_FL_PUNCH_HOLE flag to the fallocate() system call removes the specified data range from a file. The call does not change the size of the file even if you remove blocks from the end of the file. A typical use case for hole punching is to deallocate unused storage previously allocated to virtual machine images.

    • Replacing devices without unmounting or otherwise disrupting access to the file system by using the replace subcommand to btrfs, for example:

      # btrfs replace mountpoint failed_device replacement_device
    • The limitation of the number of hard links in a single directory has increased to 65535.

    For more information about the features that are available in different versions of btrfs, see https://btrfs.wiki.kernel.org/index.php/Changelog.

    Note

    To access these features, use yum update to install the btrfs-progs package (btrfs-progs-0.20-1.4 or later) from the ol6_latest channel on ULN or Oracle Public Yum.

  • DTrace is a comprehensive dynamic tracing framework that was initially developed for the Oracle Solaris operating system. DTrace provides a powerful infrastructure to permit administrators, developers, and service personnel to concisely answer arbitrary questions about the behavior of the operating system and user programs in real time.

    DTrace 0.4 in UEK R3 has the following additional features compared with Dtrace 0.3.2 in UEK R2:

    • In UEK R2, you had to install separately available packages that contain a DTrace-enabled version of the kernel and associated modules for the DTrace probes and libraries. In UEK R3, Dtrace support is integrated with the kernel and you can install the DTrace packages from the ol6_x86_64_UEK_BETA channel.

    • DTrace now supports probes for user-space statically defined tracing (USDT) in programs that have been modified to include embedded static probe points.

      DTrace allows you to embed static probe points in application code, including both complete applications and shared libraries. These probes can be enabled wherever the application or library is running, either in development or in production. You should give the probes meaningful names. For example, you could define query-receive and query-respond probes for a web server that correspond to a client submitting a request and the web server responding to that request. If the query-receive probe presented the URL request strings as an argument, a DTrace program could determine which requests are generating the most disk I/O by combining this probe with the io provider.

      You define DTrace probes in a .d source file, which is used when compiling and linking your application. Having chosen an appropriate name for your user application provider, create a provider definition in a .d source file and add a definition for each probe and its arguments. In the following example, the name of the provider is myserv, the probe query-receive has two arguments, which are both of type string, and the probe query-respond has no arguments.

      provider myserv
      {
        probe query__receive(string, string);
        probe query__respond();
      };

      Use the -h option to dtrace to generate a header file based on the probe definitions. For example, the following command generates the header file myserv.h, which contains macro definitions that correspond to the probe definitions in myserv.d:

      # dtrace -h -s myserv.d
      Note

      The D compiler converts the two consecutive underscores (__) to a dash (-) in the final probe name and to a single underscore in a macro name. The name of a generated macro encodes both the provider name and the probe name. For example, the compiler generates the MYSERV_QUERY_RECEIVE macro for the query__receive probe that is defined for the myserv provider.

      After defining your probes, amend your source code at the locations that should trigger your probes. Consider the following example C application source code:

      void main_look(void)
      {
        ...
        query = wait_for_new_query();
        process_query(query);
        ...
      }

      You can add a query-receive probe to the source code by using the MYSERV_QUERY_RECEIVE macro defined in myserv.h:

      #include "myserv.h"
      ...
      void main_look(void)
      {
        ...
        query = wait_for_new_query();
        MYSERV_QUERY_RECEIVE(query->clientname, query->msg);
        process_query(query);
        ...
      }
      Note

      The computational overhead of a DTrace probe is usually equivalent to a few no-op instructions. However, setting up probe arguments can be expensive, particularly in the case of dynamic languages where the code has to determine the name of a class or method at runtime.

      In addition to the probe macro, the dtrace -h command creates an is-enabled macro for each probe that you specify in the provider definition. To ensure that your program computes the arguments to a DTrace probe only when required, you can use the is-enabled macro to test if the probe is currently enabled, for example:

      if (MYSERV_QUERY_RECEIVE_ENABLED())
        MYSERV_QUERY_RECEIVE(query->clientname, query->msg);

      If the probe arguments are computationally expensive to calculate, the slight overhead incurred by performing the is-enabled test is more than offset when the probe is not enabled.

      You must augment the build process for your application to include the DTrace provider and probe definitions. A typical build process takes each source file and compiles it to create a corresponding object file. The compiled object files are then linked together to create the finished application binary, as shown in the following example:

      src1.o: src1.c
          gcc -c src1.c
      
      src2.o: src2.c
          gcc -c src2.c
      
      myserv: src1.o src2.o
          gcc -o myserv src1.o src2.o

      If you have included DTrace probe definitions in your application, you need to add appropriate Makefile rules to your build process to execute the dtrace command, for example:

      myserv.h: myserv.d
          dtrace -h -s myserv.d
      
      src1.o: src1.c myserv.h
          gcc -c src1.c
      
      src2.o: src2.c myserv.h
          gcc -c src2.c
      
      myserv.o: myserv.d src1.o src2.o
          dtrace -G -s myserv.d src1.o src2.o
      
      myserv: myserv.o
          gcc -Wl,--export-dynamic -o myserv myserv.o src1.o src2.o

      The dtrace command post-processes the object files created by the preceding compiler commands and generates the object file myserv.o from myserv.d and the other object files. The -G option is used to link provider and probe definitions with a user application.

      Note

      You must specify the --export-dynamic option when linking a user program that you want to trace. This option causes the linker to add all symbols to the dynamic symbol table (that is, the set of symbols which are visible from dynamic objects at run time). If you use gcc to link the objects, specify the option as -Wl,--export-dynamic to pass the correct option to the linker.

      The full name of a probe in a user application takes the usual providerPID:module:function:name form, where:

      provider

      The name of the provider as defined in the provider definition file.

      PID

      The process ID.

      module

      The name of the executable.

      function

      The name of the function where the probe is located.

      name

      The name of the probe as defined in the provider definition file with any two consecutive underscores (__) replaced by a dash (-).

      For example, for a myserv process with a PID of 1173, the full name of the query-receive probe would be myserv1173:myserv:main_look:query-receive.

    • The DTrace ustack, uaddr, and usym actions are implemented for use with user-space tracing.

      void ustack(int nframes, int strsize) 
      void ustack(int nframes)
      void ustack(void)

      The ustack action records a user stack trace to the directed buffer. The user stack is nframes in depth. If nframes is not specified, the number of stack frames recorded is the number specified by the ustackframes option. While ustack is able to determine the address of the calling frames when the probe fires, the stack frames are not translated into symbols until the ustack action is processed at user level by the DTrace consumer. If strsize is specified and non-zero, ustack allocates the specified amount of string space, and use it to perform address-to-symbol translation directly from the kernel. Such direct user symbol translation is only used with stacktrace helpers that support this usage with DTrace. If such frames cannot be translated, the frames appear only as hexadecimal addresses.

      The ustack symbol translation occurs after the stack data is recorded. Therefore, the corresponding user process might exit before symbol translation can be performed, making stack frame translation impossible. If the user process exits before symbol translation is performed, dtrace outputs a warning message, followed by the hexadecimal stack frames.

      _usymaddr uaddr(uintptr_t address)

      uaddr prints the symbol for a specified address, including hexadecimal offset. This allows for the same symbol resolution that ustack provides.

      _usymaddr usym(uintptr_t address)

      usym prints the symbol for a specified address. This is analogous to how uaddr works, but without the hexadecimal offsets.

    • For more information about DTrace, refer to the Oracle Linux 6 Administrator's Solutions Guide and the Oracle Linux 6 Dynamic Tracing Guide, which you can find in the Oracle Linux 6 documentation library at http://docs.oracle.com/cd/E37670_01/index.html.

  • The control groups (cgroups) feature allows you to manage access to system resources by processes. For more information, see Control Groups.

  • Linux containers (LXC) are based on the cgroups and namespaces functionality. Containers allow you to safely and securely run multiple applications or instances of an operating system on a single host without risking them interfering with each other. Containers are lightweight and resource-friendly, which saves both rack space and power. For more information, see Linux Containers.

    The lxc-attach command is supported by UEK R3 with the lxc-0.9.0-2.0.4 package. lxc-attach allows you to execute an arbitrary command inside a running container from outside the container. For more information, see the lxc-attach(1) manual page.

    Note

    To access this feature, use yum update to install the lxc-0.9.0-2.0.4 package (or later version of this package).

1.2. Xen Improvements

Relative to Unbreakable Enterprise Kernel Release 2 Quarterly Update 4, numerous bug fixes and performance improvements have been incorporated into the Unbreakable Enterprise Kernel to support Xen usage, including:

  • Fixes for EDD, x2apic, XenBus, and PVHVM vCPU hotplug issues.

  • The indirect-descriptor feature, which increases throughput and reduces latency for block I/O.

1.3. Driver Updates

The Unbreakable Enterprise Kernel supports a large number of hardware and devices. In close cooperation with hardware and storage vendors, Oracle has updated several device drivers. The list given below indicates the drivers whose versions differ from the versions in mainline Linux 3.8.13.

1.3.1. Storage Adapter Drivers

Broadcom

  • NetXtreme II Fibre Channel over Ethernet driver (bnx2fc) version 2.3.4.

  • NetXtreme II iSCSI driver (bnx2i) version 2.7.6.1d.

Cisco

  • Cisco FCoE HBA Driver (fnic) version 1.5.0.45.

Emulex

  • Blade Engine 2 Open-iSCSI driver (be2iscsi) version 10.0.467.0o.

  • Fibre Channel HBA driver (lpfc) version 0:8.3.7.26.2p.

LSI

  • LSI Fusion-MPT base driver (mptbase) version 4.28.20.03.

  • LSI Fusion-MPT ioctl driver (mptctl) version 4.28.20.03.

  • LSI Fusion-MPT Fibre Channel host driver (mptfc) version 4.28.20.03.

  • LSI Fusion-MPT IP Over Fibre Channel driver (mptlan) version 4.28.20.03.

  • LSI Fusion-MPT SAS driver (mptsas) version 4.28.20.03.

  • LSI Fusion-MPT SCSI host driver (mptscsih) version 4.28.20.03.

  • LSI Fusion-MPT SPI host driver (mptspi) version 4.28.20.03.

  • LSI Fusion-MPT SAS 2.0 driver (mpt2sas) version 17.00.00.00.

  • LSI Fusion-MPT SAS 3.0 driver (mpt3sas) version 03.00.00.00.

MegaRAID

  • MegaRAID SAS driver (megaraid_sas) version 06.600.18.00.

Mellanox

  • ConnectX Ethernet driver (mlx4_en) version 2.1.4. Handles Ethernet-specific functions and plugs into the netdev mid-layer.

QLogic

  • Fibre Channel HBA driver (qla2xxx) version 8.05.00.03.39.0-k.

  • iSCSI driver (qla4xxx) version 5.03.00.03.06.02-uek3. Supports Open-iSCSI.

1.3.2. Network Adapter Drivers

Broadcom

  • NetXtreme II network adapter driver (bnx2) version 2.2.3n.

  • NetXtreme II 10Gbps network adapter driver (bnx2x) version 1.76.54.

  • Converged Network Interface Card core driver (cnic) version 2.5.16g.

  • Tigon3 Ethernet adapter driver (tg3) version 3.131d.

Emulex

  • Blade Engine 2 10Gbps adapter driver (be2net) version 4.6.63.0u.

Intel

  • PRO/1000 PCI-Express Gigabit network adapter driver (e1000e) version 2.4.14-NAPI.

  • Gigabit Ethernet network adapter driver (igb) version 4.3.0.

  • Base driver for Intel Ethernet Network Connection (igbvf) version 2.3.2.

  • 10 Gigabit PCI-Express network adapter driver (ixgbe) version 3.15.1.

  • 10 Gigabit Server Adapter virtual function driver (ixgbevf) version 2.8.7.

QLogic

  • 1/10 GbE Converged/Intelligent Ethernet Adapter driver (qlcnic) version 5.2.43.

  • QLE81xx network adapter driver (qlge) version v1.00.00.32.

Realtek PCI Express Gigabit Ethernet controller

  • Realtek PCI Express Gigabit Ethernet controller (r8169) version 2.3LK-NAPI.

Oracle

  • Sun Blade 40/10Gigabit Ethernet network driver (sxge) version 0.06202013.

VMware

  • VMware VMXNET3 virtual ethernet driver (vmxnet3) version 1.1.30.0-k.

1.3.3. Miscellaneous Drivers

InfiniBand

  • iSCSI Extensions for RDMA (iSER) Protocol over InfiniBand (ib_iser) version 1.1. Provides access to iSCSI storage devices by using iSCSI extensions for remote direct memory access (iSER) over InfiniBand.

  • InfiniBand SCSI RDMA Protocol initiator (ib_srp) version 1.2. The SCSI RDMA Protocol (SRP) enables access to remote SCSI devices via remote direct memory access (RDMA).

Oracle

  • Reliable Datagram Sockets driver (rds) version 4.1. RDS provides in-order, non-duplicated, highly-available, low-overhead, reliable delivery of datagrams between hundreds of thousands of non-connected endpoints.

1.4. Notable Improvements

The following list details a some of the most visible and noteworthy improvements that have taken place in mainline Linux relative to the Unbreakable Enterprise Kernel Release 2.

  • The ext4 file system can store the content of a small file inside the inode. To enable this feature when creating a file system, specify the -O inline_data option to the mkfs.ext4 command:

    # mkfs.ext4 -O inline_data device

    For an existing ext4 file system, specify the option to the tune2fs command:

    # tune2fs -O inline_data device
    Warning

    The inline data feature is incompatible with previous versions of the Unbreakable Enterprise Kernel. Such kernels cannot mount an ext4 file system that implements this feature. If you enable the feature on a critical file system such as / or /boot, the system might fail to boot with an older kernel version.

  • XFS journals implement checksums for verifying log integrity.

  • A zero huge page complements the existing implementation of zero 4-KB pages as a performance optimization.

  • Automatic balancing of memory allocation for NUMA nodes.

  • The memory control group supports the following additional kernel usage memory usage parameters:

    memory.kmem.failcnt

    Kernel memory usage hits (display only).

    memory.kmem.limit_in_bytes

    Kernel memory hard limit (set or display).

    memory.kmem.max_usage_in_bytes

    Maximum recorded kernel memory usage (display only).

    memory.kmem.usage_in_bytes

    Current kernel memory allocation (display only).

  • The value of the SCSI error-handling timeout is now tunable. If a SCSI device times out while processing file system I/O, the kernel attempts to bring the device back online by resetting the device, followed by resetting the bus, and finally by resetting the controller. The error-handling timeout defines how many seconds the kernel should wait for a response after each recovery attempt before performing the next step in the process. For some fast-fail scenarios, it is useful to be able to adjust this value as the kernel might need additional time to try several combinations of bus device, target, bus, and controller. You can read and set the timeout via /sys/class/scsi_device/*/device/eh_timeout. The default timeout value is 10 seconds.

  • Variable-sized huge pages via the flags argument to mmap() or the shmflg argument to shmget(). Bits 26-31 of these arguments (represented by SHM_HUGE_MASK << SHM_HUGE_SHIFT, which corresponds to a position mask of 0xfc000000) specify the base-2 logarithm of the page size. For example, values of 21 << SHM_HUGE_SHIFT and 30 << SHM_HUGE_SHIFT represent page sizes of 2 MB (2^21) and 1 GB (2^30) respectively. A value of zero selects the default huge page size.

  • TCP fast open (TFO) can speed up the opening of successive TCP connections between two endpoints. Applications that want to use TFO must notify the system using appropriate API calls, such as the TCP_FASTOPEN option to setsockopt() on the server side or the MSG_FASTOPEN flag with sendto() on the client side.

  • The watchdog timer device (displayed in /proc/devices) provides a framework for all watchdog timer drivers, /dev/watchdog, and the sysfs interface for hardware-specific watchdog code.

1.5. Technology Preview

The following features included in the Unbreakable Enterprise Kernel Release 3 are still under development, but are made available for testing and evaluation purposes.

  • Kernel module signing facility

    Applies cryptographic signature checking to modules on module load, checking the signature against a ring of public keys compiled into the kernel. GPG is used to do the cryptographic work and determines the format of the signature and key data.

  • NFS version 4.1 client

    Supports Sessions, Directory Delegations, and parallel NFS (pNFS) as defined in RFC 5661.

  • Transcendent memory

    Transcendent Memory (tmem for short) provides a new approach for improving the utilization of physical memory in a virtualized environment by claiming underutilized memory in a system and making it available where it is most needed. From the perspective of an operating system, tmem is fast pseudo-RAM of indeterminate and varying size that is useful primarily when real RAM is in short supply. To learn more about this technology and its use cases, see the Transcendent Memory project page at http://oss.oracle.com/projects/tmem/.

1.6. Compatibility

Oracle Linux maintains user-space compatibility with Red Hat Enterprise Linux, which is independent of the kernel version running underneath the operating system. Existing applications in user space will continue to run unmodified on the Unbreakable Enterprise Kernel Release 3 and no re-certifications are needed for RHEL certified applications.

To minimize impact on interoperability during releases, the Oracle Linux team works closely with third-party vendors whose hardware and software have dependencies on kernel modules. The kernel ABI for UEK R3 will remain unchanged in all subsequent updates to the initial release. In this release, there are changes to the kernel ABI relative to UEK R2 that require recompilation of third-party kernel modules on the system. Before installing UEK R3, verify its support status with your application vendor.

Chapter 2. Known Issues

This chapter describes the known issues for the Unbreakable Enterprise Kernel Release 3.

ACPI

  • On some systems you might see ACPI-related error messages in dmesg similar to the following:

    ACPI Error: [CDW1] Namespace lookup failure, AE_NOT_FOUND
    ACPI Error: Method parse/execution failed [_SB_._OSC||\||]
    ACPI Error: Field [CDW3] at 96 exceeds Buffer [NULL] size 64 (bits)]]>

    These messages, which are not fatal, are caused by bugs in the BIOS. Contact your system vendor for a BIOS update. (Bug ID 13100702)

  • The following messages indicate that the BIOS does not present a suitable interface, such as _PSS or _PPC, that the acpi-cpufreq module requires:

    kernel: powernow-k8: this CPU is not supported anymore, using acpi-cpufreq instead.
    modprobe: FATAL: Error inserting acpi_cpufreq 

    There is no known workaround for this error. (Bug ID 17034535)

ASM

Calling the oracleasm init script, /etc/init.d/oracleasm, with the parameter scandisks can lead to error messages about missing devices similar to the following:

oracleasm-read-label: Unable to open device "device": No such file or directory

However, the device actually exists. You can ignore this error message, which is triggered by a timing issue. Only use the init script to start and stop the oracleasm service. All other options, such as scandisks, listdisk, and createdisk, are deprecated. For these and other administrative tasks, use /usr/sbin/oracleasm instead. (Bug ID 13639337)

bnx2x driver

When using the bnx2x driver in a bridge, disable Transparent Packet Aggregation (TPA) by including the statement options bnx2x disable_tpa=1 in /etc/modprobe.conf. (Bug ID 14626070)

btrfs

  • If you use the --alloc-start option with mkfs.btrfs to specify an offset for the start of the file system, the size of the file system should be smaller but this is not the case. It is also possible to specify an offset that is higher than the device size. (Bug ID 16946255)

  • The usage information for mkfs.btrfs reports raid5 and raid6 as possible profiles for both data and metadata. However, the kernel does not support these features and cannot mount file systems that use them. (Bug ID 16946303)

  • The btrfs filesystem balance command does not warn that the RAID level can be changed under certain circumstances, and does not provide the choice of cancelling the operation. (Bug ID 16472824)

  • Converting an existing ext2, ext3, or ext4 root file system to btrfs does not carry over the associated security contexts that are stored as part of a file's extended attributes. With SELinux enabled and set to enforcing mode, you might experience many permission denied errors after reboot, and the system might be unbootable. To avoid this problem, enforce automatic file system relabeling to run at bootup time. To trigger automatic relabeling, create an empty file named .autorelabel (for example, by using touch) in the file system's root directory before rebooting the system after the initial conversion. The presence of this file instruct SELinux to recreate the security attributes for all files on the file system. If you forget to do this and rebooting fails, either temporarily disable SELinux completely by adding selinux=0 to the kernel boot parameters, or disable enforcing of the SELinux policy by adding enforcing=0. (Bug ID 13806043)

  • Commands such as du can show inconsistent results for file sizes in a btrfs file system when the number of bytes that is under delayed allocation is changing. (Bug ID 13096268)

  • The copy-on-write nature of btrfs means that every operation on the file system initially requires disk space. It is possible that you cannot execute any operation on a disk that has no space left; even removing a file might not be possible. The workaround is to run fsync before retrying the operation. If this does not help, remount the file system with the -o nodatacow option and delete some files to free up space. See https://btrfs.wiki.kernel.org/index.php/ENOSPC.

  • The -c option to the btrfs qgroup limit command is redundant as the quota limit is always enforced after compression. (Bug ID 16557528)

  • If you run the btrfs quota enable command on a non-empty file system, any existing files do not count toward space usage. Removing these files can cause usage reports to display negative numbers and the file system to be inaccessible. The workaround is to enable quotas immediately after creating the file system. If you have already written data to the file system, it is too late to enable quotas. (Bug ID 16569350)

  • The btrfs quota rescan command is not currently implemented. The command does not perform a rescan and returns without displaying any message.

  • When you overwrite data in a file, starting somewhere in the middle of the file, the overwritten space is counted twice in the space usage numbers that btrfs qgroup show displays. (Bug ID 16609467)

  • You cannot label a file system if it is currently mounted or if it is configured on more than one device.

    The usage message displayed by btrfs implies incorrectly that you can use the command with a mounted file system:

    usage: btrfs filesystem label [<device>|<mountpoint>] [<newlabel>]

    If you attempt to label a mounted file system, the errors that btrfs displays are either incorrect or unclear depending on whether you specify the file system by its device name or its mount point, for example:

    # mount /dev/sdc1 /mnt 
    # btrfs fi label /dev/sdc1 B 
    ERROR: dev /dev/sdc1 is mounted, use mount point
    # btrfs fi label /mnt B
    ERROR: unable to set label Inappropriate ioctl for device

    (Bug ID 16745716)

  • If you run btrfsck --init-csum-tree on a file system and then run a simple btrfsck on the same file system, the command displays a Backref mismatch error that was not previously present. (Bug ID 16972799)

  • Btrfs tracks the devices on which you create btrfs file systems. If you subsequently reuse these devices in a file system other than btrfs, you might see error messages such as the following when performing a device scan or creating a RAID-1 file system, for example:

    ERROR: device scan failed '/dev/cciss/c0d0p1' - Invalid argument

    You can safely ignore these errors. (Bug ID 17087097)

  • If you use the -s option to specify a sector size to mkfs.btrfs that is different from the page size, the created file system cannot be mounted. By default, the sector size is set to be the same as the page size. (Bug ID 17087232)

  • The seed-device functionality of Btrfs causes errors when the btrfs device add command is run and a kernel panic when the seed device is unmounted. There is currently no known workaround for this issue. (Bug ID 17329252)

Configuring Oracle Database in Linux Containers

Note

Oracle Database is not yet supported for use with Linux Containers. The following information is intended for those who want to experiment with such a configuration.

The following /proc parameter files may only be set on the host and not for individual containers:

  • /proc/sys/fs/aio-max-nr

  • /proc/sys/net/core/rmem_default

  • /proc/sys/net/core/rmem_max

  • /proc/sys/net/core/wmem_default

  • /proc/sys/net/core/wmem_max

  • /proc/sys/net/ipv4/ip_local_port_range

Setting the parameters in the host to the Oracle recommended values sets them for all containers and allows the Oracle database to run in a container. For more information, see Configuring Kernel Parameters. (Bug ID 17217854)

CPU microcode update failures on PVM/PVHVM guests

When running Oracle Linux 6 with UEK R3, you might see error messages in dmesg or /var/log/messages similar to this one:

microcode: CPU0 update to revision 0x6b failed.

You can ignore this warning. You do not need to upgrade the microcode for virtual CPUs as presented to the guest. (Bug ID 12576264, 13782843)

DHCP lease is not obtained at boot time

If DHCP lease negotiation takes more than 5 seconds at boot time, the following message is displayed:

ethX: failed. No link present. Check cable?

If the ethtool ethX command confirms that the interface is present, edit /etc/sysconfig/network-scripts/ifcfg-ethX and set LINKDELAY=N, where N is a value greater than 5 seconds (for example, 30 seconds). Alternatively, use NetworkManager to configure the interface. (Bug ID 16620177)

dm-nfs obsoleted

In UEK R2, the dm-nfs module provided the ability to create a loopback device for a mounted NFS file or file system. For example, the feature allowed you to create the shared storage for an Oracle 3 VM cluster on an NFS file system. The dm-nfs module provided direct I/O to the server and bypassed the loop driver to avoid an additional level of page caching. The dm-nfs module is not provided with UEK R3. The loop driver can now provide the same I/O functionality as dm-nfs by extending the AIO interface to perform direct I/O. To create the loopback device, use the losetup command instead of dmsetup.

Distributed Replicated Block Device (DRBD)

DRBD is a shared-nothing, synchronously replicated block device (RAID1 over network), designed to serve as a building block for high availability (HA) clusters. It requires a cluster manager (for example, pacemaker) for automatic failover.

This technology preview feature is not available in the beta release.

DTrace User Space Dynamic Tracing

After a fork(), dtrace displays probes that fire for a child process with the provider name of the parent process.

Error Record Serialization Table (ERST) message

You can safely ignore the following message that might be displayed in syslog or dmesg:

ERST: Failed to get Error Log Address Range.

The message indicates that the system BIOS does not support an Error Record Serialization Table (ERST). (Bug ID 17034576)

Ext4

Some new features in ext4 are not supported by the current e2fsprogs package. A new e2fsprogs package is targeted for the official release of UEK R3.

Firmware warning message

You can safely ignore the following firmware warning message that might be displayed on some Sun hardware:

[Firmware Warn]: GHES: Poll interval is 0 for generic hardware error source:
1, disabled.

(Bug ID 13696512)

Huge pages

One-gigabyte (1 GB) huge pages are not currently supported for the following configurations:

  • HVM guests

  • PV guests

  • Oracle Database

Two-megabyte (2 MB) huge pages have been tested and work with these configurations.

(Bug ID 17299364, 17299871, 17271305)

I/O scheduler

The Unbreakable Enterprise Kernel uses the deadline scheduler as the default I/O scheduler. For the Red Hat Compatible Kernel, the default I/O scheduler is the cfq scheduler.

ioapic failure messages

You can safely ignore messages such as ioapic: probe of 0000:00:05.4 failed with error -22. Such messages are the result of the ioapic driver attempting to re-register I/O APIC PCI devices that were already registered at boot time. (Bug ID 17034993)

InfiniBand warning messages when disabling a switch port

You might see the following warning messages if you use the ibportstate disable command to disable a switch port:

ibwarn: [2696] _do_madrpc: recv failed: Connection timed out
ibwarn: [2696] mad_rpc: _do_madrpc failed; dport (Lid 38)
ibportstate: iberror: failed: smp set portinfo failed

You can safely ignore these warnings. (Bug ID 16248314)

libfprint

The following message might appear in dmesg or /var/log/messages:

WARNING! power/level is deprecated; use power/control instead.

The USB subsystem in UEK R3 deprecates the power/level sysfs attribute in favor of the power/control attribute. The libfprint fingerprinting library triggers this warning via udev rules that try to use the old attribute first. You can safely ignore this warning. The setting of the appropriate power level still succeeds. (Bug ID 13523418)

Large memory system fails to boot

If a large memory system fails to start, boot it using an alternate kernel to UEK R3 and disable the kdump service before booting into the UEK R3 kernel:

# chkconfig kdump off

(Bug ID 16765434)

NUMA warning messages on a non-NUMA system

You can safely ignore the following warning messages in dmesg and /var/log messages if you see them on a non-NUMA system:

kernel: NUMA: Warning: node ids are out of bound, from=-1 to=-1 distance=10
hcid[4293]: Register path:/org/bluez fallback:1
kernel: No NUMA configuration found

(Bug ID 13711370)

pcspkr driver error message

You can safely ignore the following error message:

Error: Driver 'pcspkr' is already registered, aborting...

The message arises from an alias conflict between snd-pcsp and pcspkr. To prevent the message from being displayed, add the following line to /etc/modprobe.d/blacklist.conf:

blacklist snd-pcsp

(Bug ID 10355937)

sched_yield() settings for CFS

For the Unbreakable Enterprise Kernel, kernel.sched_compat_yield=1 is set by default. For the Red Hat Compatible Kernel, kernel.sched_compat_yield=0 is used by default.

Soft lockup errors when booting

When upgrading or installing the UEK R3 kernel on fast hardware, usually with SAN storage attached, the kernel can fail to boot and BUG: soft lockup messages are displayed in the console log. The workaround is to increase the baud rate from the default value of 9600 by amending the kernel boot line in /boot/grub/grub.conf to include an appropriate console setting, for example:

console=ttyS0,115200n8

A value of 115200 is recommended as smaller values such as 19200 are known to be insufficient for some systems (for example, see http://docs.oracle.com/cd/E19045-01/blade.x6220/820-0048-18/sp.html#0_pgfId-1002490). If the host implements an integrated system management infrastructure, such as ILOM on Sun and Oracle systems or iLO on HP systems, configure the integrated console baud rate to match the setting for the host system. Otherwise, the integrated console is likely to display garbage characters. (Bug ID 17064059, 17252160)

Transparent Huge Pages

Due to a performance regression with some database applications, the transparent huge pages (THP) feature has been disabled. This change does not affect the use of managed huge pages. (Bug ID 16823432)

User Name Spaces

The kernel functionality (CONFIG_USER_NS) that allows unprivileged processes to create namespaces for users inside which they have root privileges is not currently implemented. This functionality is primarily intended for use with Linux Containers. As a result, the lxc-checkconfig command displays User namespace: missing. (Bug ID 16656850)

Virtualization

  • When booting UEK R3 as a PVHVM guest, you can safely ignore the following kernel message:

    register_vcpu_info failed:
              err=-38

    (Bug ID 13713774)

  • Under Oracle VM Server 3.1.1, migrating a PVHVM guest that is running the UEK R3 kernel causes a disparity between the date and time as displayed by date and hwclock. The workaround post migration is either to run the command hwclock --hctosys on the guest or to reboot the guest. (Bug ID 16861041)

  • On virtualized systems that are built on Xen version 3, including all releases of Oracle VM 2 including 2.2.2 and 2.2.3, disk synchronization requests for ext3 and ext4 file systems result in journal corruption with kernel messages similar to the following being logged:

    blkfront: barrier: empty write xvda op failed
    blkfront: xvda: barrier or flush: disabled

    In addition, journal failures such as the following might be reported:

    Aborting journal on device xvda1

    The workaround is to add the mount option barrier=0 to all ext3 and ext4 file systems in the guest VM before upgrading to UEK R3. For example, you would change a mount entry such as:

    UUID=4e4287b1-87dc-47a8-b69a-075c7579eaf1  /  ext3  defaults  1 1

    so that it reads:

    UUID=4e4287b1-87dc-47a8-b69a-075c7579eaf1  /  ext3  defaults,barrier=0  1 1

    This issue does not apply to Xen 4 based systems, such as Oracle VM 3. (Bug ID 17310816)

XFS

Some new features in XFS are not supported by the current xfsprogs package. A new xfsprogs package is targeted for the official release of UEK R3.

Chapter 3. Installation and Availability

The Unbreakable Enterprise Kernel Release 3 can be installed on Oracle Linux 6 Update 4 or newer, running either the Red Hat compatible kernel or a previous version of the Unbreakable Enterprise Kernel. If you are still running an older version of Oracle Linux, first update your system to the latest available update release.

The Unbreakable Enterprise Kernel Release 3 is supported on the x86_64 architecture but not on x86.

The kernel image and userland packages are available from the Oracle Public Yum repository at https://public-yum.oracle.com/beta/.

To enable access to the packages, create an entry such as the following in /etc/yum.conf or in a repository file in the /etc/yum.repos.d directory:

[ol6_x86_64_UEK_BETA] 
name=Beta Unbreakable Enterprise Kernel Release 3 for Oracle Linux $releasever ($basearch) 
baseurl=https://public-yum.oracle.com/beta/repo/OracleLinux/OL6/uek3/$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1 

You can download a copy of a suitable repository file from https://public-yum.oracle.com/beta/, where you can also find more information about installing the software.

After enabling access to the repository, run yum update to upgrade the system to UEK R3.

If you have questions regarding configuring or using yum to install updates, refer to the Oracle Linux Administrator's Solutions Guide at http://docs.oracle.com/cd/E37670_01/index.html.

For information about using ULN, see the Oracle Linux Unbreakable Linux Network User's Guide at http://docs.oracle.com/cd/E37670_01/index.html.