lkml.org 
[lkml]   [2023]   [Oct]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: [PATCH] um: time-travel: fix time going backwards
    Date
    On Mon, 2023-10-23 at 09:33 +0200, Johannes Berg wrote:
    > Do you have a specific workload that tends to reproduce this?

    I've been seeing it when running roadtest, but it's easily reproducible
    without that by using the attached config and the following program as
    init.

    cp repro.config .config
    make ARCH=um olddefconfig all
    gcc -Wall -static -o repro repro.c
    ./linux time-travel init=$PWD/repro rootfstype=hostfs

    With the above commands I usually see the panic in a few seconds. This
    is on an unmodified v6.6-rc7.

    ----8<-------
    #include <time.h>
    #include <pthread.h>
    #include <sys/types.h>
    #include <unistd.h>
    #include <stdio.h>

    int main(void)
    {
    if (fork() == 0) {
    while (1) {
    nanosleep(&(struct timespec){.tv_nsec = 330 * 1000}, NULL);
    }
    return 0;
    }

    while (1) {
    struct timespec ts;
    clock_gettime(CLOCK_MONOTONIC, &ts);
    nanosleep(&(struct timespec){.tv_nsec = 22 * 1000}, NULL);
    }

    return 0;
    }
    # CONFIG_LOCALVERSION_AUTO is not set
    CONFIG_NO_HZ=y
    CONFIG_HIGH_RES_TIMERS=y
    CONFIG_LOG_BUF_SHIFT=18
    CONFIG_EXPERT=y
    CONFIG_HOSTFS=y
    CONFIG_MAGIC_SYSRQ=y
    CONFIG_UML_TIME_TRAVEL_SUPPORT=y
    CONFIG_SSL=y
    CONFIG_NULL_CHAN=y
    CONFIG_PORT_CHAN=y
    CONFIG_PTY_CHAN=y
    CONFIG_TTY_CHAN=y
    CONFIG_XTERM_CHAN=y
    CONFIG_CON_CHAN="pts"
    CONFIG_SSL_CHAN="pts"
    CONFIG_VIRTIO_UML=y
    CONFIG_UML_PCI_OVER_VIRTIO=y
    CONFIG_UML_PCI_OVER_VIRTIO_DEVICE_ID=1234
    CONFIG_GCOV_KERNEL=y
    CONFIG_MODULES=y
    CONFIG_MODULE_UNLOAD=y
    CONFIG_BINFMT_MISC=m
    # CONFIG_COMPACTION is not set
    CONFIG_NET=y
    CONFIG_UNIX=y
    CONFIG_DEVTMPFS=y
    CONFIG_DEVTMPFS_MOUNT=y
    CONFIG_OF=y
    # CONFIG_INPUT is not set
    CONFIG_LEGACY_PTY_COUNT=32
    CONFIG_SERIAL_SC16IS7XX=m
    CONFIG_GOLDFISH_TTY=m
    CONFIG_SERIAL_DEV_BUS=y
    CONFIG_UML_RANDOM=y
    # CONFIG_I2C_COMPAT is not set
    CONFIG_I2C_CHARDEV=y
    CONFIG_I2C_VIRTIO=y
    CONFIG_I2C_STUB=m
    CONFIG_SPI=y
    CONFIG_SPI_SC18IS602=y
    CONFIG_SPI_MUX=y
    CONFIG_PINCTRL=y
    CONFIG_GPIOLIB=y
    CONFIG_GPIO_SYSFS=y
    CONFIG_GPIO_GENERIC_PLATFORM=m
    CONFIG_GPIO_MOCKUP=y
    CONFIG_GPIO_VIRTIO=y
    CONFIG_POWER_SUPPLY=y
    CONFIG_CHARGER_BQ256XX=m
    CONFIG_PMBUS=y
    CONFIG_SENSORS_LTC2978=m
    CONFIG_SENSORS_LTC2978_REGULATOR=y
    CONFIG_SENSORS_PWM_FAN=m
    CONFIG_SENSORS_TMP401=m
    CONFIG_REGULATOR=y
    CONFIG_REGULATOR_DEBUG=y
    CONFIG_REGULATOR_FIXED_VOLTAGE=y
    CONFIG_REGULATOR_VIRTUAL_CONSUMER=m
    CONFIG_REGULATOR_GPIO=m
    CONFIG_REGULATOR_TPS6286X=m
    CONFIG_REGULATOR_TPS6287X=m
    CONFIG_DRM=y
    CONFIG_TINYDRM_ILI9341=m
    CONFIG_NEW_LEDS=y
    CONFIG_LEDS_CLASS=y
    CONFIG_LEDS_GPIO=y
    CONFIG_LEDS_TRIGGERS=y
    CONFIG_LEDS_TRIGGER_HEARTBEAT=y
    CONFIG_RTC_CLASS=y
    # CONFIG_RTC_HCTOSYS is not set
    # CONFIG_RTC_SYSTOHC is not set
    CONFIG_RTC_DEBUG=y
    CONFIG_RTC_DRV_PCF8523=m
    CONFIG_RTC_DRV_PCF8563=m
    CONFIG_GOLDFISH=y
    CONFIG_COMMON_CLK=y
    CONFIG_COMMON_CLK_SI5351=m
    CONFIG_IIO=y
    CONFIG_IIO_BUFFER_CB=m
    CONFIG_IIO_SW_TRIGGER=y
    CONFIG_MCP320X=m
    CONFIG_TI_ADC081C=m
    CONFIG_TI_ADC084S021=m
    CONFIG_TI_ADS7924=m
    CONFIG_PMS7003=m
    CONFIG_OPT3001=m
    CONFIG_OPT4001=m
    CONFIG_VCNL4000=m
    CONFIG_IIO_HRTIMER_TRIGGER=y
    CONFIG_IIO_SYSFS_TRIGGER=y
    CONFIG_IRSD200=m
    CONFIG_PWM=y
    CONFIG_PWM_PCA9685=m
    CONFIG_MUX_GPIO=y
    CONFIG_QUOTA=y
    CONFIG_PROC_KCORE=y
    CONFIG_TMPFS=y
    CONFIG_NLS=y
    CONFIG_CRYPTO=y
    CONFIG_CRYPTO_CRC32C=y
    CONFIG_CRYPTO_JITTERENTROPY=y
    CONFIG_CRC16=y
    CONFIG_PRINTK_TIME=y
    CONFIG_PRINTK_CALLER=y
    CONFIG_DYNAMIC_DEBUG=y
    CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y
    CONFIG_GDB_SCRIPTS=y
    CONFIG_FRAME_WARN=1024
    CONFIG_READABLE_ASM=y
    CONFIG_DEBUG_FS=y
    CONFIG_UBSAN=y
    CONFIG_PAGE_EXTENSION=y
    CONFIG_DEBUG_OBJECTS=y
    CONFIG_DEBUG_OBJECTS_FREE=y
    CONFIG_DEBUG_OBJECTS_TIMERS=y
    CONFIG_DEBUG_OBJECTS_WORK=y
    CONFIG_KASAN=y
    CONFIG_PROVE_LOCKING=y
    CONFIG_ENABLE_DEFAULT_TRACERS=y
    CONFIG_FAULT_INJECTION=y
    CONFIG_FAILSLAB=y
    CONFIG_FAULT_INJECTION_DEBUG_FS=y
    CONFIG_FAULT_INJECTION_STACKTRACE_FILTER=y
    \
     
     \ /
      Last update: 2023-10-25 13:56    [W:3.808 / U:0.452 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site