Chapter 1. Important Changes to External Kernel Parameters

This chapter provides system administrators with a summary of significant changes in the kernel shipped with Red Hat Enterprise Linux 6.4. These changes include added or updated procfs entries, sysfs default values, boot parameters, kernel configuration options, or any noticeable behavior changes.
A new kernel parameter, intel_idle.max_cstate, has been added to specify the maximum depth of a C-state, or to disable intel_idle and fall back to acpi_idle. For more information, refer to the /usr/share/doc/kernel-doc-<version>/Documentation/kernel-parameters.txt file.
The new nobar kernel parameter, specific to the AMD64 / Intel 64 architecture, can be used to not assign address space to the Base Address Registers (BARs) that were not assigned by the BIOS.
The new noari kernel parameter can disable the use of PCIe Alternative Routing ID Interpretation (ARI).
MD state file
The state file of an MD array component device (found in the /sys/block/md<md_number>/md/dev-<device_name> directory) can now contain additional device states. For more information, refer to the /usr/share/doc/kernel-doc-<version>/Documentation/md.txt file.
The route_localnet kernel parameter can be used to enable the use of 127/8 for local routing purposes. For more information, refer to the /usr/share/doc/kernel-doc-<version>/Documentation/networking/ip-sysctl.txt file.
The pf_retrans kernel parameter specifies the number of re-transmissions that will be attempted on a given path before traffic is redirected to an alternate transport (should one exist). For more information, refer to the /usr/share/doc/kernel-doc-<version>/Documentation/networking/ip-sysctl.txt file.
The new traceevent library, used by perf, uses the following sysfs control files:
On 64-bit IBM POWER machines, the following control files have been added to be used by the firmware-assisted dump feature:
For more information about these files, refer to /usr/share/doc/kernel-doc-<version>/Documentation/powerpc/firmware-assisted-dump.txt.
Transparent Hugepages
The /sys/kernel/mm/transparent_hugepage symbolic link, which points to /sys/kernel/mm/redhat_transparent_hugepage, has been added for consistency purposes.
Documentation for transparent hugepages has been added to the following file:
The vmbus_show_device_attr attribute of the Hyper-V vmbus driver shows the device attribute in sysfs. This is invoked when the /sys/bus/vmbus/devices/<busdevice>/<attr_name> file is read.
BNA debugfs Interface
The BNA debugfs interface can be accessed through the bna/pci_dev:<pci_name> hierarchy (note that the debugfs file system must be mounted). The following debugging services are available for each pci_dev>:
  • fwtrc — used to collect current firmware trace.
  • fwsave — used to collect last-saved firmware trace as a result of firmware crash.
  • regwr — used to write one word to the chip register.
  • regrd — used to read one or more words from the chip register.
iwlegacy debug_level
The iwlegacy driver includes a new sysfs control file, /sys/bus/pci/drivers/iwl/debug_level, to control per-device level of debugging. The CONFIG_IWLEGACY_DEBUG option enables this feature.
iwlwifi debug_level
The iwlwifi driver includes a new sysfs control file, /sys/class/net/wlan0/device/debug_level, to control per-device level of debugging. The CONFIG_IWLWIFI_DEBUG option enables this feature.
If debugfs is mounted, the new /sys/kernel/debug/ie6xx_wdt file contains a value that determines whether the system was rebooted by watchdog.
The new /proc/fs/nfsd/supported_krb5_enctypes proc file lists the encryption types supported by the kernel's gss_krb5 code.
The /proc/asound/card<card_number>/usbmixer proc file has been added. It contains a mapping between the ALSA control API and the USB mixer control units. This file can be used debugging and problem diagnostics.
The /proc/asound/card<card_number>/codec#<number> proc files now contain information about the D3cold power state, the deepest power-saving state for a PCIe device. The codec#<number> files now also contain additional power state information, specifically: reset status, clock stop ok, and power states error. The following is an example output:
Power: setting=D0, actual=D0, Error, Clock-stop-OK, Setting-reset
The cgroup.procs file is now writable. Writing a TGID into the cgroup.procs file of a cgroup moves that thread group into that cgroup.
The last sysfs_dirent, which represents a single sysfs node, is now cached to improve scalability of the readdir function.
The iov sysfs directory was added under the ib device. This directory is used to manage and examine the port P_Key and guid paravirtualization.
FDMI attributes
Fabric Device Management Interface (FDMI) attributes can now be exposed to the fcoe driver via the fc_host class object.
The /sys/bus/usb/devices/<device>/ltm_capable file has been added to show whether a device supports Latency Tolerance Messaging (LTM). This file is present for both USB 2.0 and USB 3.0 devices.
The /sys/class/net/eth<number>/device/fwdump_state file has been added to determine whether the firmware dump feature is enabled or disabled.
flags, registers
The Commands in Q item was added to the /sys/block/rssd<number>/registers file. This file's output was also re-formatted. Also, a new /sys/block/rssd<number>/flags file has been added. This read-only file dumps the flags in a port and driver data structure.
The /sys/class/net/eth<number>/duplex file now reports unknown when the NIC duplex state is DUPLEX_UNKNOWN.
Mountpoint Interface
A sysfs mountpoint interface was added to the perf tool.
TCP_USER_TIMEOUT is a TCP level socket option that specifies the maximum amount of time (in milliseconds) that transmitted data may remain unacknowledged before TCP will forcefully close the corresponding connection and return ETIMEDOUT to the application. If the value 0 is specified, TCP will continue to use the system default.
The IPPROTO_ICMP socket option makes it possible to send ICMP_ECHO messages and receive the corresponding ICMP_ECHOREPLY messages without any special privileges.
Increased Default in ST_MAX_TAPES
In Red Hat Enterprise Linux 6.4, the number of supported tape drives has increased from 128 to 512.
Increased Number of Supported IOMMUs
The number of supported input/output memory management units (IOMMUs) has been increased to be the same as the number of I/O Advanced Programmable Interrupt Controllers (APICs; defined in MAX_IO_APICS).
New Module Parameters
The following list summarizes new command line arguments passed to various kernel modules. For more information about the majority of these module parameters, refer to the output of the modinfo <module> command, for example, modinfo bna.
  • New kvm module parameter:
    module_param(min_timer_period_us, uint, S_IRUGO | S_IWUSR);
    • min_timer_period_us — Do not allow the guest to program periodic timers with small interval, since the hrtimers are not throttled by the host scheduler, and allow tuning the interval with this parameter. The default value is 500us.
  • New kvm-intel module parameter:
    module_param_named(eptad, enable_ept_ad_bits, bool, S_IRUGO);
    • enable_ept_ad_bits — Parameter to control enabling/disabling A/D bits, if supported by CPU. The default value is enabled.
  • New ata_piix module parameter:
    module_param(prefer_ms_hyperv, int, 0);
    • prefer_ms_hyperv — On Hyper-V Hypervisors, the disks are exposed on both the emulated SATA controller and on the paravirtualized drivers. The CD/DVD devices are only exposed on the emulated controller. Request to ignore ATA devices on this host. The default value is enabled.
  • New drm module parameters:
    module_param_named(edid_fixup, edid_fixup, int, 0400);
    module_param_string(edid_firmware, edid_firmware, sizeof(edid_firmware), 0644);
    • edid_fixup — Minimum number of valid EDID header bytes (0-8). The default value is 6.
    • edid_firmware — Do not probe monitor, use specified EDID blob from built-in data or /lib/firmware instead.
  • New i915 module parameters:
    module_param_named(lvds_channel_mode, i915_lvds_channel_mode, int, 0600);
    module_param_named(i915_enable_ppgtt, i915_enable_ppgtt, int, 0600);
    module_param_named(invert_brightness, i915_panel_invert_brightness, int, 0600);
  • New nouveau module parameter:
    module_param_named(vram_type, nouveau_vram_type, charp, 0400);
  • New radeon module parameter:
    module_param_named(lockup_timeout, radeon_lockup_timeout, int, 0444);
  • New i2c-ismt module parameters:
    module_param(stop_on_error, uint, S_IRUGO);
    module_param(fair, uint, S_IRUGO);
  • New iw-cxgb4 module parameters:
    module_param(db_delay_usecs, int, 0644);
    module_param(db_fc_threshold, int, 0644);
  • New mlx4_ib module parameter:
    module_param_named(sm_guid_assign, mlx4_ib_sm_guid_assign, int, 0444);
  • New ib_qib module parameter:
    module_param_named(cc_table_size, qib_cc_table_size, uint, S_IRUGO);
  • New bna module parameter:
    module_param(bna_debugfs_enable, uint, S_IRUGO | S_IWUSR);
  • New cxgb4 module parameters:
    module_param(dbfifo_int_thresh, int, 0644);
    module_param(dbfifo_drain_delay, int, 0644);
  • New e1000e module parameter:
    module_param(debug, int, 0);
  • New igb module parameter:
    module_param(debug, int, 0);
  • New igbvf module parameter:
    module_param(debug, int, 0);
  • New ixgbe module parameter:
    module_param(debug, int, 0);
  • New ixgbevf module parameter:
    module_param(debug, int, 0);
  • New hv_netvsc module parameter:
    module_param(ring_size, int, S_IRUGO);
  • New mlx4_core module parameter:
    module_param(enable_64b_cqe_eqe, bool, 0444);
    • enable_64b_cqe_eqe — Enable 64 byte CQEs/EQEs when the firmware supports this.
  • New sfc module parameters:
    module_param(vf_max_tx_channels, uint, 0444);
    module_param(max_vfs, int, 0444);
  • New ath5k module parameter:
    module_param_named(no_hw_rfkill_switch, ath5k_modparam_no_hw_rfkill_switch, bool, S_IRUGO);
  • New iwlegacy module parameters:
    module_param(led_mode, int, S_IRUGO);
    module_param(bt_coex_active, bool, S_IRUGO);
  • New wlcore module parameter:
    module_param(no_recovery, bool, S_IRUSR | S_IWUSR);
  • New s390 scm_block module parameters:
    module_param(nr_requests, uint, S_IRUGO);
    module_param(write_cluster_size, uint, S_IRUGO)
  • New s390 zfcp module parameters:
    module_param_named(no_auto_port_rescan, no_auto_port_rescan, bool, 0600);
    module_param_named(datarouter, enable_multibuffer, bool, 0400);
    module_param_named(dif, enable_dif, bool, 0400);
  • New aacraid module parameters:
    module_param(aac_sync_mode, int, S_IRUGO|S_IWUSR);
    module_param(aac_convert_sgl, int, S_IRUGO|S_IWUSR);
  • New be2iscsi module parameter:
    module_param(beiscsi_##_name, uint, S_IRUGO);
  • New lpfc module parameter:
    module_param(lpfc_req_fw_upgrade, int, S_IRUGO|S_IWUSR);
  • New megaraid_sas module parameters:
    module_param(msix_vectors, int, S_IRUGO);
    module_param(throttlequeuedepth, int, S_IRUGO);
    module_param(resetwaittime, int, S_IRUGO);
  • New qla4xxx module parameters:
    module_param(ql4xqfulltracking, int, S_IRUGO | S_IWUSR);
    module_param(ql4xmdcapmask, int, S_IRUGO);
    module_param(ql4xenablemd, int, S_IRUGO | S_IWUSR);
  • New hv_storvsc module parameter:
    module_param(storvsc_ringbuffer_size, int, S_IRUGO);
  • New ehci-hcd driver parameter:
    module_param(io_watchdog_force, uint, S_IRUGO);
    • io_watchdog_force — Force I/O watchdog to be ON for all devices.
  • New ie6xx_wdt module parameters:
    module_param(timeout, uint, 0);
    module_param(nowayout, bool, 0);
    module_param(resetmode, byte, 0);
  • New snd-ua101 module parameter:
    module_param(queue_length, uint, 0644);