Message ID | 20171124151748.2564-1-arkadiusz.hiler@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 24.11.2017 17:17, Arkadiusz Hiler wrote: > This patch gets rid of the Android support, deleting all the hacks and > moving code around to the places it belongs. > > Android build is not really maintained properly and rots rather fast. > With recent push for Meson here and Android going for Soong it will only > accelerate. > > It's a good time to drop the illusion of providing any support. > > Cc: Daniel Vetter <daniel.vetter@intel.com> > Cc: Kalyan Kondapally <kalyan.kondapally@intel.com> > Cc: Petri Latvala <petri.latvala@intel.com> > Cc: Radoslaw Szwichtenberg <radoslaw.szwichtenberg@intel.com> > Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> > --- > Android.mk | 4 -- > assembler/ralloc.c | 5 --- > benchmarks/Android.mk | 46 --------------------- > benchmarks/gem_syslatency.c | 2 - > lib/Android.mk | 53 ------------------------ > lib/drmtest.h | 16 -------- > lib/igt_aux.c | 95 -------------------------------------------- > lib/igt_aux.h | 5 --- > lib/igt_core.c | 68 ------------------------------- > lib/igt_debugfs.c | 25 +----------- > lib/igt_fb.h | 7 ---- > lib/igt_kmod.h | 4 -- > lib/igt_kms.c | 89 +++++++++++++++++++++++++++++++++++++++++ > lib/tests/Android.mk | 41 ------------------- > tests/Android.mk | 83 -------------------------------------- > tests/core_get_client_auth.c | 4 +- > tests/gem_exec_nop.c | 4 -- > tools/Android.mk | 82 -------------------------------------- > 18 files changed, 91 insertions(+), 542 deletions(-) > delete mode 100644 Android.mk > delete mode 100644 benchmarks/Android.mk > delete mode 100644 lib/Android.mk > delete mode 100644 lib/tests/Android.mk > delete mode 100644 tests/Android.mk > delete mode 100644 tools/Android.mk > > diff --git a/Android.mk b/Android.mk > deleted file mode 100644 > index 3690fc5a..00000000 > --- a/Android.mk > +++ /dev/null > @@ -1,4 +0,0 @@ > -HAVE_LIBDRM_INTEL := true > - > -include $(call all-named-subdir-makefiles, lib tests tools benchmarks) > - > diff --git a/assembler/ralloc.c b/assembler/ralloc.c > index 59e71c48..69c1da4d 100644 > --- a/assembler/ralloc.c > +++ b/assembler/ralloc.c > @@ -28,11 +28,6 @@ > #include <string.h> > #include <stdint.h> > > -/* Android defines SIZE_MAX in limits.h, instead of the standard stdint.h */ > -#ifdef ANDROID > -#include <limits.h> > -#endif > - > /* Some versions of MinGW are missing _vscprintf's declaration, although they > * still provide the symbol in the import library. */ > #ifdef __MINGW32__ > diff --git a/benchmarks/Android.mk b/benchmarks/Android.mk > deleted file mode 100644 > index 4ea275c4..00000000 > --- a/benchmarks/Android.mk > +++ /dev/null > @@ -1,46 +0,0 @@ > -LOCAL_PATH := $(call my-dir) > - > -include $(LOCAL_PATH)/Makefile.sources > -IGT_LOCAL_C_INCLUDES = $(LOCAL_PATH)/../lib > - > -#================# > - > -define add_benchmark > - include $(CLEAR_VARS) > - > - LOCAL_SRC_FILES := $1.c > - > - LOCAL_C_INCLUDES = ${IGT_LOCAL_C_INCLUDES} \ > - $(LOCAL_PATH)/../lib/stubs/drm/ > - LOCAL_CFLAGS += -DHAVE_STRUCT_SYSINFO_TOTALRAM > - LOCAL_CFLAGS += -DANDROID -UNDEBUG -include "check-ndebug.h" > - LOCAL_CFLAGS += -std=gnu99 > - # FIXME: drop once Bionic correctly annotates "noreturn" on pthread_exit > - LOCAL_CFLAGS += -Wno-error=return-type > - # Excessive complaining for established cases. Rely on the Linux version warnings. > - LOCAL_CFLAGS += -Wno-sign-compare > - LOCAL_LDFLAGS += -lkmod > - > - LOCAL_MODULE := $1_benchmark > - LOCAL_MODULE_TAGS := optional > - LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/intel/validation/core/igt/benchmarks > - > - LOCAL_STATIC_LIBRARIES := libintel_gpu_tools > - > - LOCAL_SHARED_LIBRARIES := libpciaccess \ > - libkmod \ > - libdrm \ > - libdrm_intel > - > - include $(BUILD_EXECUTABLE) > -endef > - > -#================# > - > -benchmark_list := $(benchmarks_prog_list) > - > -ifeq ($(HAVE_LIBDRM_INTEL),true) > - benchmark_list += $(LIBDRM_INTEL_BENCHMARKS) > -endif > - > -$(foreach item,$(benchmark_list),$(eval $(call add_benchmark,$(item)))) > diff --git a/benchmarks/gem_syslatency.c b/benchmarks/gem_syslatency.c > index 580edc5f..de59eaf8 100644 > --- a/benchmarks/gem_syslatency.c > +++ b/benchmarks/gem_syslatency.c > @@ -219,7 +219,6 @@ static void *sys_thp_alloc(void *arg) > static void bind_cpu(pthread_attr_t *attr, int cpu) > { > #ifdef __USE_GNU > -#ifndef ANDROID > cpu_set_t mask; > > if (cpu == -1) > @@ -230,7 +229,6 @@ static void bind_cpu(pthread_attr_t *attr, int cpu) > > pthread_attr_setaffinity_np(attr, sizeof(mask), &mask); > #endif > -#endif > } > > static void rtprio(pthread_attr_t *attr, int prio) > diff --git a/lib/Android.mk b/lib/Android.mk > deleted file mode 100644 > index 31f88be7..00000000 > --- a/lib/Android.mk > +++ /dev/null > @@ -1,53 +0,0 @@ > -LOCAL_PATH := $(call my-dir) > - > -GPU_TOOLS_PATH := $(LOCAL_PATH)/.. > -IGT_LIB_PATH := $(LOCAL_PATH) > - > -# FIXME: autogenerate this info # > -$(GPU_TOOLS_PATH)/config.h: > - @echo "updating config.h" > - @echo '#define PACKAGE_VERSION "1.5"' >> $@ ; \ > - echo '#define TARGET_CPU_PLATFORM "android-ia"' >> $@ ; > - > -include $(LOCAL_PATH)/Makefile.sources > - > -include $(CLEAR_VARS) > - > -LOCAL_GENERATED_SOURCES := \ > - $(IGT_LIB_PATH)/version.h \ > - $(GPU_TOOLS_PATH)/config.h > - > -LOCAL_C_INCLUDES += $(LOCAL_PATH)/.. \ > - $(LOCAL_PATH)/stubs/drm/ > - > -LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH) > - > -LOCAL_CFLAGS += -DHAVE_LIBDRM_ATOMIC_PRIMITIVES > -LOCAL_CFLAGS += -DHAVE_STRUCT_SYSINFO_TOTALRAM > -LOCAL_CFLAGS += -DANDROID -DHAVE_LINUX_KD_H > -LOCAL_CFLAGS += -std=gnu99 -UNDEBUG > -LOCAL_MODULE:= libintel_gpu_tools > - > -LOCAL_SHARED_LIBRARIES := libpciaccess \ > - libkmod \ > - libdrm \ > - libdrm_intel > - > -ifeq ("${ANDROID_HAS_CAIRO}", "1") > - skip_lib_list := > - LOCAL_C_INCLUDES += $(ANDROID_BUILD_TOP)/external/cairo-1.12.16/src > - LOCAL_CFLAGS += -DANDROID_HAS_CAIRO=1 -DIGT_DATADIR=\".\" -DIGT_SRCDIR=\".\" > -else > -skip_lib_list := \ > - igt_kms.c \ > - igt_kms.h \ > - igt_fb.c > - -DANDROID_HAS_CAIRO=0 > -endif > - > -LOCAL_SRC_FILES := $(filter-out %.h $(skip_lib_list),$(lib_source_list)) > - > -include $(BUILD_STATIC_LIBRARY) > - > -include $(call first-makefiles-under, $(LOCAL_PATH)) > - > diff --git a/lib/drmtest.h b/lib/drmtest.h > index a86799d5..fdd34ec6 100644 > --- a/lib/drmtest.h > +++ b/lib/drmtest.h > @@ -51,22 +51,6 @@ > */ > #define DRIVER_ANY ~(DRIVER_VGEM) > > - > -#ifdef ANDROID > -#if (!(defined HAVE_MMAP64)) && (!(defined __x86_64__)) > -extern void* __mmap2(void *, size_t, int, int, int, off_t); > - > -/* mmap64 is a recent addition to bionic and not available in all android builds. */ > -/* I can find no reliable way to know if it is defined or not - so just avoid it */ > -#define mmap64 igt_mmap64 > -static inline void *igt_mmap64(void *addr, size_t length, int prot, int flags, > - int fd, off64_t offset) > -{ > - return __mmap2(addr, length, prot, flags, fd, offset >> 12); > -} > -#endif > -#endif > - > /** > * ARRAY_SIZE: > * @arr: static array > diff --git a/lib/igt_aux.c b/lib/igt_aux.c > index 0bcf792c..a41ae2f1 100644 > --- a/lib/igt_aux.c > +++ b/lib/igt_aux.c > @@ -1085,101 +1085,6 @@ void igt_debug_manual_check(const char *var, const char *expected) > igt_assert(key != 'n' && key != 'N'); > } > > -/* Functions with prefix kmstest_ independent of cairo library are pulled out > - * from file igt_kms.c since this file is skipped in lib/Android.mk when flag > - * ANDROID_HAS_CAIRO is 0. This ensures the usability of these functions even > - * when cairo library is not present on Android. > - */ > - > -struct type_name { > - int type; > - const char *name; > -}; > - > -static const char *find_type_name(const struct type_name *names, int type) > -{ > - for (; names->name; names++) { > - if (names->type == type) > - return names->name; > - } > - > - return "(invalid)"; > -} > - > -static const struct type_name encoder_type_names[] = { > - { DRM_MODE_ENCODER_NONE, "none" }, > - { DRM_MODE_ENCODER_DAC, "DAC" }, > - { DRM_MODE_ENCODER_TMDS, "TMDS" }, > - { DRM_MODE_ENCODER_LVDS, "LVDS" }, > - { DRM_MODE_ENCODER_TVDAC, "TVDAC" }, > - { DRM_MODE_ENCODER_VIRTUAL, "Virtual" }, > - { DRM_MODE_ENCODER_DSI, "DSI" }, > - { DRM_MODE_ENCODER_DPMST, "DP MST" }, > - {} > -}; > - > -/** > - * kmstest_encoder_type_str: > - * @type: DRM_MODE_ENCODER_* enumeration value > - * > - * Returns: A string representing the drm encoder @type. > - */ > -const char *kmstest_encoder_type_str(int type) > -{ > - return find_type_name(encoder_type_names, type); > -} > - > -static const struct type_name connector_status_names[] = { > - { DRM_MODE_CONNECTED, "connected" }, > - { DRM_MODE_DISCONNECTED, "disconnected" }, > - { DRM_MODE_UNKNOWNCONNECTION, "unknown" }, > - {} > -}; > - > -/** > - * kmstest_connector_status_str: > - * @status: DRM_MODE_* connector status value > - * > - * Returns: A string representing the drm connector status @status. > - */ > -const char *kmstest_connector_status_str(int status) > -{ > - return find_type_name(connector_status_names, status); > -} > - > -static const struct type_name connector_type_names[] = { > - { DRM_MODE_CONNECTOR_Unknown, "Unknown" }, > - { DRM_MODE_CONNECTOR_VGA, "VGA" }, > - { DRM_MODE_CONNECTOR_DVII, "DVI-I" }, > - { DRM_MODE_CONNECTOR_DVID, "DVI-D" }, > - { DRM_MODE_CONNECTOR_DVIA, "DVI-A" }, > - { DRM_MODE_CONNECTOR_Composite, "Composite" }, > - { DRM_MODE_CONNECTOR_SVIDEO, "SVIDEO" }, > - { DRM_MODE_CONNECTOR_LVDS, "LVDS" }, > - { DRM_MODE_CONNECTOR_Component, "Component" }, > - { DRM_MODE_CONNECTOR_9PinDIN, "DIN" }, > - { DRM_MODE_CONNECTOR_DisplayPort, "DP" }, > - { DRM_MODE_CONNECTOR_HDMIA, "HDMI-A" }, > - { DRM_MODE_CONNECTOR_HDMIB, "HDMI-B" }, > - { DRM_MODE_CONNECTOR_TV, "TV" }, > - { DRM_MODE_CONNECTOR_eDP, "eDP" }, > - { DRM_MODE_CONNECTOR_VIRTUAL, "Virtual" }, > - { DRM_MODE_CONNECTOR_DSI, "DSI" }, > - { DRM_MODE_CONNECTOR_DPI, "DPI" }, > - {} > -}; > - > -/** > - * kmstest_connector_type_str: > - * @type: DRM_MODE_CONNECTOR_* enumeration value > - * > - * Returns: A string representing the drm connector @type. > - */ > -const char *kmstest_connector_type_str(int type) > -{ > - return find_type_name(connector_type_names, type); > -} > - > /** > * igt_lock_mem: > * @size: the amount of memory to lock into RAM, in MB > diff --git a/lib/igt_aux.h b/lib/igt_aux.h > index 0bd226be..02e70126 100644 > --- a/lib/igt_aux.h > +++ b/lib/igt_aux.h > @@ -45,12 +45,7 @@ extern int num_trash_bos; > #define NSEC_PER_SEC (1000*USEC_PER_SEC) > > /* signal interrupt helpers */ > -#ifdef ANDROID > -#include <unistd.h> /* on Android bionic has this implemented */ > -#else > #define gettid() syscall(__NR_gettid) > -#endif > - > #define sigev_notify_thread_id _sigev_un._tid > > /* auxialiary igt helpers from igt_aux.c */ > diff --git a/lib/igt_core.c b/lib/igt_core.c > index 6ce83bec..de9269b0 100644 > --- a/lib/igt_core.c > +++ b/lib/igt_core.c > @@ -496,72 +496,6 @@ void __igt_fixture_end(void) > } > > /* > - * Some of the IGT tests put quite a lot of pressure on memory and when > - * running on Android they are sometimes killed by the Android low memory killer. > - * This seems to be due to some incompatibility between the kswapd free memory > - * targets and the way the lowmemorykiller assesses free memory. > - * The low memory killer really isn't usefull in this context and has no > - * interaction with the gpu driver that we are testing, so the following > - * function is used to disable it by modifying one of its module parameters. > - * We still have the normal linux oom killer to protect the kernel. > - * Apparently it is also possible for the lowmemorykiller to get included > - * in some linux distributions; so rather than check for Android we directly > - * check for the existence of the module parameter we want to adjust. > - * > - * In future, if we can get the lowmemorykiller to play nicely then we can > - * remove this hack. > - */ > -static void low_mem_killer_disable(bool disable) > -{ > - static const char* adj_fname="/sys/module/lowmemorykiller/parameters/adj"; > - static const char no_lowmem_killer[] = "9999"; > - int fd; > - struct stat buf; > - /* The following must persist across invocations */ > - static char prev_adj_scores[256]; > - static int adj_scores_len = 0; > - static bool is_disabled = false; > - > - /* capture the permissions bits for the lowmemkiller adj pseudo-file. > - * Bail out if the stat fails; it probably means that there is no > - * lowmemorykiller, but in any case we're doomed. */ > - if (stat(adj_fname, &buf)) { > - igt_assert(errno == ENOENT); > - return; > - } > - > - /* make sure the file can be read/written - by default it is write-only */ > - chmod(adj_fname, S_IRUSR | S_IWUSR); > - > - if (disable && !is_disabled) { > - /* read the current oom adj parameters for lowmemorykiller */ > - fd = open(adj_fname, O_RDWR); > - igt_assert(fd != -1); > - adj_scores_len = read(fd, (void*)prev_adj_scores, 255); > - igt_assert(adj_scores_len > 0); > - > - /* writing 9999 to this module parameter effectively diables the > - * low memory killer. This is not a real file, so we dont need to > - * seek to the start or truncate it */ > - igt_assert_eq(write(fd, no_lowmem_killer, sizeof(no_lowmem_killer)), > - sizeof(no_lowmem_killer)); > - close(fd); > - is_disabled = true; > - } else if (is_disabled) { > - /* just re-enstate the original settings */ > - fd = open(adj_fname, O_WRONLY); > - igt_assert(fd != -1); > - igt_assert_eq(write(fd, prev_adj_scores, adj_scores_len), > - adj_scores_len); > - close(fd); > - is_disabled = false; > - } > - > - /* re-enstate the file permissions */ > - chmod(adj_fname, buf.st_mode); > -} > - > -/* > * If the test takes out the machine, in addition to the usual dmesg > * spam, the kernel may also emit a "death rattle" -- extra debug > * information that is overkill for normal successful tests, but > @@ -587,7 +521,6 @@ bool igt_exit_called; > static void common_exit_handler(int sig) > { > if (!igt_only_list_subtests()) { > - low_mem_killer_disable(false); > kick_fbcon(true); > } > > @@ -879,7 +812,6 @@ out: > > sync(); > oom_adjust_for_doom(); > - low_mem_killer_disable(true); > ftrace_dump_on_oops(true); > } > > diff --git a/lib/igt_debugfs.c b/lib/igt_debugfs.c > index 5670099f..9af8a593 100644 > --- a/lib/igt_debugfs.c > +++ b/lib/igt_debugfs.c > @@ -990,30 +990,7 @@ int igt_get_stable_obj_count(int driver) > obj_count = get_object_count(driver); > /* The test relies on the system being in the same state before and > * after the test so any difference in the object count is a result of > - * leaks during the test. gem_quiescent_gpu() mostly achieves this but > - * on android occasionally obj_count can still change briefly. > - * The loop ensures obj_count has remained stable over several checks > - */ > -#ifdef ANDROID > - { > - int loop_count = 0; > - int prev_obj_count = obj_count; > - while (loop_count < 4) { > - usleep(200000); > - gem_quiescent_gpu(driver); > - obj_count = get_object_count(driver); > - if (obj_count == prev_obj_count) { > - loop_count++; > - } else { > - igt_debug("loop_count=%d, obj_count=%d, prev_obj_count=%d\n", > - loop_count, obj_count, prev_obj_count); > - loop_count = 0; > - prev_obj_count = obj_count; > - } > - > - } > - } > -#endif > + * leaks during the test. */ > return obj_count; > } > > diff --git a/lib/igt_fb.h b/lib/igt_fb.h > index 3f549036..d30a7340 100644 > --- a/lib/igt_fb.h > +++ b/lib/igt_fb.h > @@ -28,14 +28,7 @@ > #ifndef __IGT_FB_H__ > #define __IGT_FB_H__ > > -/* cairo is assumed available on linux. On Android we check for ANDROID_HAS_CAIRO */ > -#if (!defined(ANDROID)) || (defined(ANDROID) && ANDROID_HAS_CAIRO) > #include <cairo.h> > -#else > -typedef struct _cairo_surface cairo_surface_t; > -typedef struct _cairo cairo_t; > -#endif > - > #include <stddef.h> > #include <stdbool.h> > #include <drm_fourcc.h> > diff --git a/lib/igt_kmod.h b/lib/igt_kmod.h > index 6a7584f1..fd307a45 100644 > --- a/lib/igt_kmod.h > +++ b/lib/igt_kmod.h > @@ -24,11 +24,7 @@ > #ifndef IGT_KMOD_H > #define IGT_KMOD_H > > -#ifdef ANDROID > -#include <libkmod/libkmod.h> > -#else > #include <libkmod.h> > -#endif > > #include "igt_aux.h" > > diff --git a/lib/igt_kms.c b/lib/igt_kms.c > index 92dcd3ca..125ecb19 100644 > --- a/lib/igt_kms.c > +++ b/lib/igt_kms.c > @@ -377,6 +377,95 @@ const char *kmstest_plane_type_name(int plane_type) > return names[plane_type]; > } > > +struct type_name { > + int type; > + const char *name; > +}; > + > +static const char *find_type_name(const struct type_name *names, int type) > +{ > + for (; names->name; names++) { > + if (names->type == type) > + return names->name; > + } > + > + return "(invalid)"; > +} > + > +static const struct type_name encoder_type_names[] = { > + { DRM_MODE_ENCODER_NONE, "none" }, > + { DRM_MODE_ENCODER_DAC, "DAC" }, > + { DRM_MODE_ENCODER_TMDS, "TMDS" }, > + { DRM_MODE_ENCODER_LVDS, "LVDS" }, > + { DRM_MODE_ENCODER_TVDAC, "TVDAC" }, > + { DRM_MODE_ENCODER_VIRTUAL, "Virtual" }, > + { DRM_MODE_ENCODER_DSI, "DSI" }, > + { DRM_MODE_ENCODER_DPMST, "DP MST" }, > + {} > +}; > + > +/** > + * kmstest_encoder_type_str: > + * @type: DRM_MODE_ENCODER_* enumeration value > + * > + * Returns: A string representing the drm encoder @type. > + */ > +const char *kmstest_encoder_type_str(int type) > +{ > + return find_type_name(encoder_type_names, type); > +} > + > +static const struct type_name connector_status_names[] = { > + { DRM_MODE_CONNECTED, "connected" }, > + { DRM_MODE_DISCONNECTED, "disconnected" }, > + { DRM_MODE_UNKNOWNCONNECTION, "unknown" }, > + {} > +}; > + > +/** > + * kmstest_connector_status_str: > + * @status: DRM_MODE_* connector status value > + * > + * Returns: A string representing the drm connector status @status. > + */ > +const char *kmstest_connector_status_str(int status) > +{ > + return find_type_name(connector_status_names, status); > +} > + > +static const struct type_name connector_type_names[] = { > + { DRM_MODE_CONNECTOR_Unknown, "Unknown" }, > + { DRM_MODE_CONNECTOR_VGA, "VGA" }, > + { DRM_MODE_CONNECTOR_DVII, "DVI-I" }, > + { DRM_MODE_CONNECTOR_DVID, "DVI-D" }, > + { DRM_MODE_CONNECTOR_DVIA, "DVI-A" }, > + { DRM_MODE_CONNECTOR_Composite, "Composite" }, > + { DRM_MODE_CONNECTOR_SVIDEO, "SVIDEO" }, > + { DRM_MODE_CONNECTOR_LVDS, "LVDS" }, > + { DRM_MODE_CONNECTOR_Component, "Component" }, > + { DRM_MODE_CONNECTOR_9PinDIN, "DIN" }, > + { DRM_MODE_CONNECTOR_DisplayPort, "DP" }, > + { DRM_MODE_CONNECTOR_HDMIA, "HDMI-A" }, > + { DRM_MODE_CONNECTOR_HDMIB, "HDMI-B" }, > + { DRM_MODE_CONNECTOR_TV, "TV" }, > + { DRM_MODE_CONNECTOR_eDP, "eDP" }, > + { DRM_MODE_CONNECTOR_VIRTUAL, "Virtual" }, > + { DRM_MODE_CONNECTOR_DSI, "DSI" }, > + { DRM_MODE_CONNECTOR_DPI, "DPI" }, > + {} > +}; > + > +/** > + * kmstest_connector_type_str: > + * @type: DRM_MODE_CONNECTOR_* enumeration value > + * > + * Returns: A string representing the drm connector @type. > + */ > +const char *kmstest_connector_type_str(int type) > +{ > + return find_type_name(connector_type_names, type); > +} > + > static const char *mode_stereo_name(const drmModeModeInfo *mode) > { > switch (mode->flags & DRM_MODE_FLAG_3D_MASK) { > diff --git a/lib/tests/Android.mk b/lib/tests/Android.mk > deleted file mode 100644 > index bbbd4d86..00000000 > --- a/lib/tests/Android.mk > +++ /dev/null > @@ -1,41 +0,0 @@ > -LOCAL_PATH := $(call my-dir) > - > -include $(LOCAL_PATH)/Makefile.sources > - > -#================# > -# each igt test is a separate executable. define a function to build one of these tests > -define add_test > - include $(CLEAR_VARS) > - > - # specific to this test > - LOCAL_SRC_FILES := $1.c > - LOCAL_MODULE := $1 > - > - # common to all tests > - LOCAL_CFLAGS += ${IGT_LOCAL_CFLAGS} > - LOCAL_C_INCLUDES = ${IGT_LOCAL_C_INCLUDES} > - LOCAL_STATIC_LIBRARIES := ${IGT_LOCAL_STATIC_LIBRARIES} > - LOCAL_SHARED_LIBRARIES := ${IGT_LOCAL_SHARED_LIBRARIES} > - > - LOCAL_MODULE_TAGS := optional > - LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/intel/validation/core/igt > - > - include $(BUILD_EXECUTABLE) > -endef > - > -# set local compilation flags for IGT tests > -IGT_LOCAL_CFLAGS += -DHAVE_STRUCT_SYSINFO_TOTALRAM -DANDROID -UNDEBUG > -IGT_LOCAL_CFLAGS += -std=gnu99 > -# FIXME: drop once Bionic correctly annotates "noreturn" on pthread_exit > -IGT_LOCAL_CFLAGS += -Wno-error=return-type > - > -# set local includes > -IGT_LOCAL_C_INCLUDES = $(LOCAL_PATH)/../lib \ > - $(LOCAL_PATH)/../lib/stubs/drm/ > - > -# set local libraries > -IGT_LOCAL_STATIC_LIBRARIES := libintel_gpu_tools > -IGT_LOCAL_SHARED_LIBRARIES := libpciaccess libdrm libdrm_intel > - > -$(foreach item,$($(check_prog_list)),$(eval $(call add_test,$(item)))) > - > diff --git a/tests/Android.mk b/tests/Android.mk > deleted file mode 100644 > index c6e966fa..00000000 > --- a/tests/Android.mk > +++ /dev/null > @@ -1,83 +0,0 @@ > -LOCAL_PATH := $(call my-dir) > - > -include $(LOCAL_PATH)/Makefile.sources > - > -#================# > -# each igt test is a separate executable. define a function to build one of these tests > -define add_test > - include $(CLEAR_VARS) > - > - # specific to this test > - LOCAL_SRC_FILES := $1.c > - LOCAL_MODULE := $1 > - > - # common to all tests > - LOCAL_CFLAGS += ${IGT_LOCAL_CFLAGS} > - LOCAL_C_INCLUDES = ${IGT_LOCAL_C_INCLUDES} > - LOCAL_STATIC_LIBRARIES := ${IGT_LOCAL_STATIC_LIBRARIES} > - LOCAL_SHARED_LIBRARIES := ${IGT_LOCAL_SHARED_LIBRARIES} > - > - LOCAL_MODULE_TAGS := optional > - # ask linker to define a specific symbol; we use this to identify IGT tests > - LOCAL_LDFLAGS := -Wl,--defsym=$2=0 -lkmod > - LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/intel/validation/core/igt > - > - include $(BUILD_EXECUTABLE) > -endef > - > - > -# some tests still do not build under android > -skip_tests_list := > -skip_tests_list += testdisplay # needs glib.h > -skip_tests_list += pm_rpm > - > -# set local compilation flags for IGT tests > -IGT_LOCAL_CFLAGS += -DHAVE_STRUCT_SYSINFO_TOTALRAM -DANDROID -UNDEBUG > -IGT_LOCAL_CFLAGS += -include "check-ndebug.h" -std=gnu99 > -# FIXME: drop once Bionic correctly annotates "noreturn" on pthread_exit > -IGT_LOCAL_CFLAGS += -Wno-error=return-type > -# Excessive complaining for established cases. Rely on the Linux version warnings. > -IGT_LOCAL_CFLAGS += -Wno-sign-compare > - > -# set local includes > -IGT_LOCAL_C_INCLUDES = $(LOCAL_PATH)/../lib \ > - $(LOCAL_PATH)/../lib/stubs/drm/ > - > -# set local libraries > -IGT_LOCAL_STATIC_LIBRARIES := libintel_gpu_tools > -IGT_LOCAL_SHARED_LIBRARIES := libpciaccess libkmod libdrm libdrm_intel > - > -# handle cairo requirements if it is enabled > -ifeq ("${ANDROID_HAS_CAIRO}", "1") > - IGT_LOCAL_C_INCLUDES += ${ANDROID_BUILD_TOP}/external/cairo-1.12.16/src > - IGT_LOCAL_SHARED_LIBRARIES += libcairo > - IGT_LOCAL_CFLAGS += -DANDROID_HAS_CAIRO=1 > -else > -# the following tests depend on cairo, so skip them > - skip_tests_list += \ > - gem_render_copy \ > - pm_lpsp \ > - drm_read \ > - gem_exec_blt \ > - perf \ > - prime_mmap_kms > - > -# All kms tests depend on cairo > - tmp_list := $(foreach test_name, $(TESTS_progs),\ > - $(if $(findstring kms_,$(test_name)),$(test_name))) > - skip_tests_list += $(tmp_list) > - > - tmp_list := $(foreach test_name, $(TESTS_progs_M),\ > - $(if $(findstring kms_,$(test_name)),$(test_name))) > - skip_tests_list += $(tmp_list) > - > - IGT_LOCAL_CFLAGS += -DANDROID_HAS_CAIRO=0 > -endif > - > -# create two test lists, one for simple single tests, one for tests that have subtests > -tests_list := $(filter-out $(skip_tests_list),$(TESTS_progs) $(HANG) $(TESTS_testsuite)) > -tests_list_M := $(filter-out $(skip_tests_list),$(TESTS_progs_M)) > - > -$(foreach item,$(tests_list),$(eval $(call add_test,$(item),"IGT_SINGLE_TEST"))) > -$(foreach item,$(tests_list_M),$(eval $(call add_test,$(item),"IGT_MULTI_TEST"))) > - > diff --git a/tests/core_get_client_auth.c b/tests/core_get_client_auth.c > index 676083d5..9c64699d 100644 > --- a/tests/core_get_client_auth.c > +++ b/tests/core_get_client_auth.c > @@ -51,12 +51,10 @@ is_local_tid(pid_t tid) > { > #ifndef __linux__ > return pthread_self() == tid; > -#elif !defined(ANDROID) > +#else > /* On Linux systems, drmGetClient() would return the thread ID > instead of the actual process ID */ > return syscall(SYS_gettid) == tid; > -#else > - return gettid() == tid; > #endif > } > > diff --git a/tests/gem_exec_nop.c b/tests/gem_exec_nop.c > index c9280795..b5f15807 100644 > --- a/tests/gem_exec_nop.c > +++ b/tests/gem_exec_nop.c > @@ -142,7 +142,6 @@ stable_nop_on_ring(int fd, uint32_t handle, unsigned int engine, > return n; > } > > -#if !defined(ANDROID) || ANDROID_HAS_CAIRO > #define assert_within_epsilon(x, ref, tolerance) \ > igt_assert_f((x) <= (1.0 + tolerance) * ref && \ > (x) >= (1.0 - tolerance) * ref, \ > @@ -187,7 +186,6 @@ static void headless(int fd, uint32_t handle) > /* check that the two execution speeds are roughly the same */ > assert_within_epsilon(n_headless, n_display, 0.1f); > } > -#endif > > static bool ignore_engine(int fd, unsigned engine) > { > @@ -710,13 +708,11 @@ igt_main > } > } > > -#if !defined(ANDROID) || ANDROID_HAS_CAIRO > igt_subtest("headless") { > /* Requires master for changing display modes */ > igt_require(drmSetMaster(device) == 0); > headless(device, handle); > } > -#endif > > igt_fixture { > igt_stop_hang_detector(); > diff --git a/tools/Android.mk b/tools/Android.mk > deleted file mode 100644 > index 96075c9d..00000000 > --- a/tools/Android.mk > +++ /dev/null > @@ -1,82 +0,0 @@ > -LOCAL_PATH := $(call my-dir) > - > -include $(LOCAL_PATH)/Makefile.sources > - > -LOCAL_TOOLS_DIR := intel/validation/core/igt/tools > - > -#================# > - > -define add_tool > - include $(CLEAR_VARS) > - > - ifeq ($($(1)_SOURCES),) > - LOCAL_SRC_FILES := $1.c > - else > - LOCAL_SRC_FILES := $(filter-out %.h,$($(1)_SOURCES)) > - endif > - > - LOCAL_CFLAGS += -DHAVE_TERMIOS_H > - LOCAL_CFLAGS += -DHAVE_STRUCT_SYSINFO_TOTALRAM > - LOCAL_CFLAGS += -DANDROID -UNDEBUG > - LOCAL_CFLAGS += -std=gnu99 > - # FIXME: drop once Bionic correctly annotates "noreturn" on pthread_exit > - LOCAL_CFLAGS += -Wno-error=return-type > - # Excessive complaining for established cases. Rely on the Linux version warnings. > - LOCAL_CFLAGS += -Wno-sign-compare > - LOCAL_LDFLAGS += -lkmod > - ifeq ($($(1)_LDFLAGS),) > - else > - LOCAL_LDFLAGS += $($(1)_LDFLAGS) > - endif > - > - LOCAL_C_INCLUDES = $(LOCAL_PATH)/../lib \ > - $(LOCAL_PATH)/../lib/stubs/drm/ > - > - LOCAL_MODULE := $1_tool > - LOCAL_MODULE_TAGS := optional > - > - LOCAL_STATIC_LIBRARIES := libintel_gpu_tools > - > - LOCAL_SHARED_LIBRARIES := libpciaccess \ > - libkmod \ > - libdrm \ > - libdrm_intel \ > - libz > - > - # Tools dir on host > - LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/$(LOCAL_TOOLS_DIR) > - # Tools dir on target. > - LOCAL_CFLAGS += -DPKGDATADIR=\"/system/vendor/$(LOCAL_TOOLS_DIR)\" > - > - include $(BUILD_EXECUTABLE) > -endef > - > -#================# > - > -# Copy the register files > -$(shell mkdir -p $(TARGET_OUT_VENDOR)/$(LOCAL_TOOLS_DIR)/registers) > -$(shell cp $(LOCAL_PATH)/registers/* $(TARGET_OUT_VENDOR)/$(LOCAL_TOOLS_DIR)/registers) > - > -bin_PROGRAMS := $(tools_prog_lists) > - > -skip_tools_list := \ > - intel_framebuffer_dump \ > - intel_guc_logger \ > - intel_l3_parity \ > - intel_reg_dumper \ > - intel_vga_read \ > - intel_vga_write > - > -ifneq ("${ANDROID_HAS_CAIRO}", "1") > - skip_tools_list += intel_display_crc > - skip_tools_list += intel_residency > -endif > - > -ifeq ($(HAVE_LIBDRM_INTEL),true) > - bin_PROGRAMS += $(LIBDRM_INTEL_BIN) > - intel_error_decode_LDFLAGS = -lz > -endif > - > -tools_list := $(filter-out $(skip_tools_list),$(bin_PROGRAMS)) > - > -$(foreach item,$(tools_list),$(eval $(call add_tool,$(item)))) > Don't know about anyone needing Android support for igt but changes for Android support removal are Reviewed-by: Juha-Pekka Heikkila <juhapekka.heikkila@gmail.com>
On Fri, 2017-11-24 at 17:17 +0200, Arkadiusz Hiler wrote: > This patch gets rid of the Android support, deleting all the hacks and > moving code around to the places it belongs. > > Android build is not really maintained properly and rots rather fast. > With recent push for Meson here and Android going for Soong it will only > accelerate. > > It's a good time to drop the illusion of providing any support. > > Cc: Daniel Vetter <daniel.vetter@intel.com> > Cc: Kalyan Kondapally <kalyan.kondapally@intel.com> > Cc: Petri Latvala <petri.latvala@intel.com> > Cc: Radoslaw Szwichtenberg <radoslaw.szwichtenberg@intel.com> > Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> Reviewed-by: Radoslaw Szwichtenberg <radoslaw.szwichtenberg@intel.com>
diff --git a/Android.mk b/Android.mk deleted file mode 100644 index 3690fc5a..00000000 --- a/Android.mk +++ /dev/null @@ -1,4 +0,0 @@ -HAVE_LIBDRM_INTEL := true - -include $(call all-named-subdir-makefiles, lib tests tools benchmarks) - diff --git a/assembler/ralloc.c b/assembler/ralloc.c index 59e71c48..69c1da4d 100644 --- a/assembler/ralloc.c +++ b/assembler/ralloc.c @@ -28,11 +28,6 @@ #include <string.h> #include <stdint.h> -/* Android defines SIZE_MAX in limits.h, instead of the standard stdint.h */ -#ifdef ANDROID -#include <limits.h> -#endif - /* Some versions of MinGW are missing _vscprintf's declaration, although they * still provide the symbol in the import library. */ #ifdef __MINGW32__ diff --git a/benchmarks/Android.mk b/benchmarks/Android.mk deleted file mode 100644 index 4ea275c4..00000000 --- a/benchmarks/Android.mk +++ /dev/null @@ -1,46 +0,0 @@ -LOCAL_PATH := $(call my-dir) - -include $(LOCAL_PATH)/Makefile.sources -IGT_LOCAL_C_INCLUDES = $(LOCAL_PATH)/../lib - -#================# - -define add_benchmark - include $(CLEAR_VARS) - - LOCAL_SRC_FILES := $1.c - - LOCAL_C_INCLUDES = ${IGT_LOCAL_C_INCLUDES} \ - $(LOCAL_PATH)/../lib/stubs/drm/ - LOCAL_CFLAGS += -DHAVE_STRUCT_SYSINFO_TOTALRAM - LOCAL_CFLAGS += -DANDROID -UNDEBUG -include "check-ndebug.h" - LOCAL_CFLAGS += -std=gnu99 - # FIXME: drop once Bionic correctly annotates "noreturn" on pthread_exit - LOCAL_CFLAGS += -Wno-error=return-type - # Excessive complaining for established cases. Rely on the Linux version warnings. - LOCAL_CFLAGS += -Wno-sign-compare - LOCAL_LDFLAGS += -lkmod - - LOCAL_MODULE := $1_benchmark - LOCAL_MODULE_TAGS := optional - LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/intel/validation/core/igt/benchmarks - - LOCAL_STATIC_LIBRARIES := libintel_gpu_tools - - LOCAL_SHARED_LIBRARIES := libpciaccess \ - libkmod \ - libdrm \ - libdrm_intel - - include $(BUILD_EXECUTABLE) -endef - -#================# - -benchmark_list := $(benchmarks_prog_list) - -ifeq ($(HAVE_LIBDRM_INTEL),true) - benchmark_list += $(LIBDRM_INTEL_BENCHMARKS) -endif - -$(foreach item,$(benchmark_list),$(eval $(call add_benchmark,$(item)))) diff --git a/benchmarks/gem_syslatency.c b/benchmarks/gem_syslatency.c index 580edc5f..de59eaf8 100644 --- a/benchmarks/gem_syslatency.c +++ b/benchmarks/gem_syslatency.c @@ -219,7 +219,6 @@ static void *sys_thp_alloc(void *arg) static void bind_cpu(pthread_attr_t *attr, int cpu) { #ifdef __USE_GNU -#ifndef ANDROID cpu_set_t mask; if (cpu == -1) @@ -230,7 +229,6 @@ static void bind_cpu(pthread_attr_t *attr, int cpu) pthread_attr_setaffinity_np(attr, sizeof(mask), &mask); #endif -#endif } static void rtprio(pthread_attr_t *attr, int prio) diff --git a/lib/Android.mk b/lib/Android.mk deleted file mode 100644 index 31f88be7..00000000 --- a/lib/Android.mk +++ /dev/null @@ -1,53 +0,0 @@ -LOCAL_PATH := $(call my-dir) - -GPU_TOOLS_PATH := $(LOCAL_PATH)/.. -IGT_LIB_PATH := $(LOCAL_PATH) - -# FIXME: autogenerate this info # -$(GPU_TOOLS_PATH)/config.h: - @echo "updating config.h" - @echo '#define PACKAGE_VERSION "1.5"' >> $@ ; \ - echo '#define TARGET_CPU_PLATFORM "android-ia"' >> $@ ; - -include $(LOCAL_PATH)/Makefile.sources - -include $(CLEAR_VARS) - -LOCAL_GENERATED_SOURCES := \ - $(IGT_LIB_PATH)/version.h \ - $(GPU_TOOLS_PATH)/config.h - -LOCAL_C_INCLUDES += $(LOCAL_PATH)/.. \ - $(LOCAL_PATH)/stubs/drm/ - -LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH) - -LOCAL_CFLAGS += -DHAVE_LIBDRM_ATOMIC_PRIMITIVES -LOCAL_CFLAGS += -DHAVE_STRUCT_SYSINFO_TOTALRAM -LOCAL_CFLAGS += -DANDROID -DHAVE_LINUX_KD_H -LOCAL_CFLAGS += -std=gnu99 -UNDEBUG -LOCAL_MODULE:= libintel_gpu_tools - -LOCAL_SHARED_LIBRARIES := libpciaccess \ - libkmod \ - libdrm \ - libdrm_intel - -ifeq ("${ANDROID_HAS_CAIRO}", "1") - skip_lib_list := - LOCAL_C_INCLUDES += $(ANDROID_BUILD_TOP)/external/cairo-1.12.16/src - LOCAL_CFLAGS += -DANDROID_HAS_CAIRO=1 -DIGT_DATADIR=\".\" -DIGT_SRCDIR=\".\" -else -skip_lib_list := \ - igt_kms.c \ - igt_kms.h \ - igt_fb.c - -DANDROID_HAS_CAIRO=0 -endif - -LOCAL_SRC_FILES := $(filter-out %.h $(skip_lib_list),$(lib_source_list)) - -include $(BUILD_STATIC_LIBRARY) - -include $(call first-makefiles-under, $(LOCAL_PATH)) - diff --git a/lib/drmtest.h b/lib/drmtest.h index a86799d5..fdd34ec6 100644 --- a/lib/drmtest.h +++ b/lib/drmtest.h @@ -51,22 +51,6 @@ */ #define DRIVER_ANY ~(DRIVER_VGEM) - -#ifdef ANDROID -#if (!(defined HAVE_MMAP64)) && (!(defined __x86_64__)) -extern void* __mmap2(void *, size_t, int, int, int, off_t); - -/* mmap64 is a recent addition to bionic and not available in all android builds. */ -/* I can find no reliable way to know if it is defined or not - so just avoid it */ -#define mmap64 igt_mmap64 -static inline void *igt_mmap64(void *addr, size_t length, int prot, int flags, - int fd, off64_t offset) -{ - return __mmap2(addr, length, prot, flags, fd, offset >> 12); -} -#endif -#endif - /** * ARRAY_SIZE: * @arr: static array diff --git a/lib/igt_aux.c b/lib/igt_aux.c index 0bcf792c..a41ae2f1 100644 --- a/lib/igt_aux.c +++ b/lib/igt_aux.c @@ -1085,101 +1085,6 @@ void igt_debug_manual_check(const char *var, const char *expected) igt_assert(key != 'n' && key != 'N'); } -/* Functions with prefix kmstest_ independent of cairo library are pulled out - * from file igt_kms.c since this file is skipped in lib/Android.mk when flag - * ANDROID_HAS_CAIRO is 0. This ensures the usability of these functions even - * when cairo library is not present on Android. - */ - -struct type_name { - int type; - const char *name; -}; - -static const char *find_type_name(const struct type_name *names, int type) -{ - for (; names->name; names++) { - if (names->type == type) - return names->name; - } - - return "(invalid)"; -} - -static const struct type_name encoder_type_names[] = { - { DRM_MODE_ENCODER_NONE, "none" }, - { DRM_MODE_ENCODER_DAC, "DAC" }, - { DRM_MODE_ENCODER_TMDS, "TMDS" }, - { DRM_MODE_ENCODER_LVDS, "LVDS" }, - { DRM_MODE_ENCODER_TVDAC, "TVDAC" }, - { DRM_MODE_ENCODER_VIRTUAL, "Virtual" }, - { DRM_MODE_ENCODER_DSI, "DSI" }, - { DRM_MODE_ENCODER_DPMST, "DP MST" }, - {} -}; - -/** - * kmstest_encoder_type_str: - * @type: DRM_MODE_ENCODER_* enumeration value - * - * Returns: A string representing the drm encoder @type. - */ -const char *kmstest_encoder_type_str(int type) -{ - return find_type_name(encoder_type_names, type); -} - -static const struct type_name connector_status_names[] = { - { DRM_MODE_CONNECTED, "connected" }, - { DRM_MODE_DISCONNECTED, "disconnected" }, - { DRM_MODE_UNKNOWNCONNECTION, "unknown" }, - {} -}; - -/** - * kmstest_connector_status_str: - * @status: DRM_MODE_* connector status value - * - * Returns: A string representing the drm connector status @status. - */ -const char *kmstest_connector_status_str(int status) -{ - return find_type_name(connector_status_names, status); -} - -static const struct type_name connector_type_names[] = { - { DRM_MODE_CONNECTOR_Unknown, "Unknown" }, - { DRM_MODE_CONNECTOR_VGA, "VGA" }, - { DRM_MODE_CONNECTOR_DVII, "DVI-I" }, - { DRM_MODE_CONNECTOR_DVID, "DVI-D" }, - { DRM_MODE_CONNECTOR_DVIA, "DVI-A" }, - { DRM_MODE_CONNECTOR_Composite, "Composite" }, - { DRM_MODE_CONNECTOR_SVIDEO, "SVIDEO" }, - { DRM_MODE_CONNECTOR_LVDS, "LVDS" }, - { DRM_MODE_CONNECTOR_Component, "Component" }, - { DRM_MODE_CONNECTOR_9PinDIN, "DIN" }, - { DRM_MODE_CONNECTOR_DisplayPort, "DP" }, - { DRM_MODE_CONNECTOR_HDMIA, "HDMI-A" }, - { DRM_MODE_CONNECTOR_HDMIB, "HDMI-B" }, - { DRM_MODE_CONNECTOR_TV, "TV" }, - { DRM_MODE_CONNECTOR_eDP, "eDP" }, - { DRM_MODE_CONNECTOR_VIRTUAL, "Virtual" }, - { DRM_MODE_CONNECTOR_DSI, "DSI" }, - { DRM_MODE_CONNECTOR_DPI, "DPI" }, - {} -}; - -/** - * kmstest_connector_type_str: - * @type: DRM_MODE_CONNECTOR_* enumeration value - * - * Returns: A string representing the drm connector @type. - */ -const char *kmstest_connector_type_str(int type) -{ - return find_type_name(connector_type_names, type); -} - /** * igt_lock_mem: * @size: the amount of memory to lock into RAM, in MB diff --git a/lib/igt_aux.h b/lib/igt_aux.h index 0bd226be..02e70126 100644 --- a/lib/igt_aux.h +++ b/lib/igt_aux.h @@ -45,12 +45,7 @@ extern int num_trash_bos; #define NSEC_PER_SEC (1000*USEC_PER_SEC) /* signal interrupt helpers */ -#ifdef ANDROID -#include <unistd.h> /* on Android bionic has this implemented */ -#else #define gettid() syscall(__NR_gettid) -#endif - #define sigev_notify_thread_id _sigev_un._tid /* auxialiary igt helpers from igt_aux.c */ diff --git a/lib/igt_core.c b/lib/igt_core.c index 6ce83bec..de9269b0 100644 --- a/lib/igt_core.c +++ b/lib/igt_core.c @@ -496,72 +496,6 @@ void __igt_fixture_end(void) } /* - * Some of the IGT tests put quite a lot of pressure on memory and when - * running on Android they are sometimes killed by the Android low memory killer. - * This seems to be due to some incompatibility between the kswapd free memory - * targets and the way the lowmemorykiller assesses free memory. - * The low memory killer really isn't usefull in this context and has no - * interaction with the gpu driver that we are testing, so the following - * function is used to disable it by modifying one of its module parameters. - * We still have the normal linux oom killer to protect the kernel. - * Apparently it is also possible for the lowmemorykiller to get included - * in some linux distributions; so rather than check for Android we directly - * check for the existence of the module parameter we want to adjust. - * - * In future, if we can get the lowmemorykiller to play nicely then we can - * remove this hack. - */ -static void low_mem_killer_disable(bool disable) -{ - static const char* adj_fname="/sys/module/lowmemorykiller/parameters/adj"; - static const char no_lowmem_killer[] = "9999"; - int fd; - struct stat buf; - /* The following must persist across invocations */ - static char prev_adj_scores[256]; - static int adj_scores_len = 0; - static bool is_disabled = false; - - /* capture the permissions bits for the lowmemkiller adj pseudo-file. - * Bail out if the stat fails; it probably means that there is no - * lowmemorykiller, but in any case we're doomed. */ - if (stat(adj_fname, &buf)) { - igt_assert(errno == ENOENT); - return; - } - - /* make sure the file can be read/written - by default it is write-only */ - chmod(adj_fname, S_IRUSR | S_IWUSR); - - if (disable && !is_disabled) { - /* read the current oom adj parameters for lowmemorykiller */ - fd = open(adj_fname, O_RDWR); - igt_assert(fd != -1); - adj_scores_len = read(fd, (void*)prev_adj_scores, 255); - igt_assert(adj_scores_len > 0); - - /* writing 9999 to this module parameter effectively diables the - * low memory killer. This is not a real file, so we dont need to - * seek to the start or truncate it */ - igt_assert_eq(write(fd, no_lowmem_killer, sizeof(no_lowmem_killer)), - sizeof(no_lowmem_killer)); - close(fd); - is_disabled = true; - } else if (is_disabled) { - /* just re-enstate the original settings */ - fd = open(adj_fname, O_WRONLY); - igt_assert(fd != -1); - igt_assert_eq(write(fd, prev_adj_scores, adj_scores_len), - adj_scores_len); - close(fd); - is_disabled = false; - } - - /* re-enstate the file permissions */ - chmod(adj_fname, buf.st_mode); -} - -/* * If the test takes out the machine, in addition to the usual dmesg * spam, the kernel may also emit a "death rattle" -- extra debug * information that is overkill for normal successful tests, but @@ -587,7 +521,6 @@ bool igt_exit_called; static void common_exit_handler(int sig) { if (!igt_only_list_subtests()) { - low_mem_killer_disable(false); kick_fbcon(true); } @@ -879,7 +812,6 @@ out: sync(); oom_adjust_for_doom(); - low_mem_killer_disable(true); ftrace_dump_on_oops(true); } diff --git a/lib/igt_debugfs.c b/lib/igt_debugfs.c index 5670099f..9af8a593 100644 --- a/lib/igt_debugfs.c +++ b/lib/igt_debugfs.c @@ -990,30 +990,7 @@ int igt_get_stable_obj_count(int driver) obj_count = get_object_count(driver); /* The test relies on the system being in the same state before and * after the test so any difference in the object count is a result of - * leaks during the test. gem_quiescent_gpu() mostly achieves this but - * on android occasionally obj_count can still change briefly. - * The loop ensures obj_count has remained stable over several checks - */ -#ifdef ANDROID - { - int loop_count = 0; - int prev_obj_count = obj_count; - while (loop_count < 4) { - usleep(200000); - gem_quiescent_gpu(driver); - obj_count = get_object_count(driver); - if (obj_count == prev_obj_count) { - loop_count++; - } else { - igt_debug("loop_count=%d, obj_count=%d, prev_obj_count=%d\n", - loop_count, obj_count, prev_obj_count); - loop_count = 0; - prev_obj_count = obj_count; - } - - } - } -#endif + * leaks during the test. */ return obj_count; } diff --git a/lib/igt_fb.h b/lib/igt_fb.h index 3f549036..d30a7340 100644 --- a/lib/igt_fb.h +++ b/lib/igt_fb.h @@ -28,14 +28,7 @@ #ifndef __IGT_FB_H__ #define __IGT_FB_H__ -/* cairo is assumed available on linux. On Android we check for ANDROID_HAS_CAIRO */ -#if (!defined(ANDROID)) || (defined(ANDROID) && ANDROID_HAS_CAIRO) #include <cairo.h> -#else -typedef struct _cairo_surface cairo_surface_t; -typedef struct _cairo cairo_t; -#endif - #include <stddef.h> #include <stdbool.h> #include <drm_fourcc.h> diff --git a/lib/igt_kmod.h b/lib/igt_kmod.h index 6a7584f1..fd307a45 100644 --- a/lib/igt_kmod.h +++ b/lib/igt_kmod.h @@ -24,11 +24,7 @@ #ifndef IGT_KMOD_H #define IGT_KMOD_H -#ifdef ANDROID -#include <libkmod/libkmod.h> -#else #include <libkmod.h> -#endif #include "igt_aux.h" diff --git a/lib/igt_kms.c b/lib/igt_kms.c index 92dcd3ca..125ecb19 100644 --- a/lib/igt_kms.c +++ b/lib/igt_kms.c @@ -377,6 +377,95 @@ const char *kmstest_plane_type_name(int plane_type) return names[plane_type]; } +struct type_name { + int type; + const char *name; +}; + +static const char *find_type_name(const struct type_name *names, int type) +{ + for (; names->name; names++) { + if (names->type == type) + return names->name; + } + + return "(invalid)"; +} + +static const struct type_name encoder_type_names[] = { + { DRM_MODE_ENCODER_NONE, "none" }, + { DRM_MODE_ENCODER_DAC, "DAC" }, + { DRM_MODE_ENCODER_TMDS, "TMDS" }, + { DRM_MODE_ENCODER_LVDS, "LVDS" }, + { DRM_MODE_ENCODER_TVDAC, "TVDAC" }, + { DRM_MODE_ENCODER_VIRTUAL, "Virtual" }, + { DRM_MODE_ENCODER_DSI, "DSI" }, + { DRM_MODE_ENCODER_DPMST, "DP MST" }, + {} +}; + +/** + * kmstest_encoder_type_str: + * @type: DRM_MODE_ENCODER_* enumeration value + * + * Returns: A string representing the drm encoder @type. + */ +const char *kmstest_encoder_type_str(int type) +{ + return find_type_name(encoder_type_names, type); +} + +static const struct type_name connector_status_names[] = { + { DRM_MODE_CONNECTED, "connected" }, + { DRM_MODE_DISCONNECTED, "disconnected" }, + { DRM_MODE_UNKNOWNCONNECTION, "unknown" }, + {} +}; + +/** + * kmstest_connector_status_str: + * @status: DRM_MODE_* connector status value + * + * Returns: A string representing the drm connector status @status. + */ +const char *kmstest_connector_status_str(int status) +{ + return find_type_name(connector_status_names, status); +} + +static const struct type_name connector_type_names[] = { + { DRM_MODE_CONNECTOR_Unknown, "Unknown" }, + { DRM_MODE_CONNECTOR_VGA, "VGA" }, + { DRM_MODE_CONNECTOR_DVII, "DVI-I" }, + { DRM_MODE_CONNECTOR_DVID, "DVI-D" }, + { DRM_MODE_CONNECTOR_DVIA, "DVI-A" }, + { DRM_MODE_CONNECTOR_Composite, "Composite" }, + { DRM_MODE_CONNECTOR_SVIDEO, "SVIDEO" }, + { DRM_MODE_CONNECTOR_LVDS, "LVDS" }, + { DRM_MODE_CONNECTOR_Component, "Component" }, + { DRM_MODE_CONNECTOR_9PinDIN, "DIN" }, + { DRM_MODE_CONNECTOR_DisplayPort, "DP" }, + { DRM_MODE_CONNECTOR_HDMIA, "HDMI-A" }, + { DRM_MODE_CONNECTOR_HDMIB, "HDMI-B" }, + { DRM_MODE_CONNECTOR_TV, "TV" }, + { DRM_MODE_CONNECTOR_eDP, "eDP" }, + { DRM_MODE_CONNECTOR_VIRTUAL, "Virtual" }, + { DRM_MODE_CONNECTOR_DSI, "DSI" }, + { DRM_MODE_CONNECTOR_DPI, "DPI" }, + {} +}; + +/** + * kmstest_connector_type_str: + * @type: DRM_MODE_CONNECTOR_* enumeration value + * + * Returns: A string representing the drm connector @type. + */ +const char *kmstest_connector_type_str(int type) +{ + return find_type_name(connector_type_names, type); +} + static const char *mode_stereo_name(const drmModeModeInfo *mode) { switch (mode->flags & DRM_MODE_FLAG_3D_MASK) { diff --git a/lib/tests/Android.mk b/lib/tests/Android.mk deleted file mode 100644 index bbbd4d86..00000000 --- a/lib/tests/Android.mk +++ /dev/null @@ -1,41 +0,0 @@ -LOCAL_PATH := $(call my-dir) - -include $(LOCAL_PATH)/Makefile.sources - -#================# -# each igt test is a separate executable. define a function to build one of these tests -define add_test - include $(CLEAR_VARS) - - # specific to this test - LOCAL_SRC_FILES := $1.c - LOCAL_MODULE := $1 - - # common to all tests - LOCAL_CFLAGS += ${IGT_LOCAL_CFLAGS} - LOCAL_C_INCLUDES = ${IGT_LOCAL_C_INCLUDES} - LOCAL_STATIC_LIBRARIES := ${IGT_LOCAL_STATIC_LIBRARIES} - LOCAL_SHARED_LIBRARIES := ${IGT_LOCAL_SHARED_LIBRARIES} - - LOCAL_MODULE_TAGS := optional - LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/intel/validation/core/igt - - include $(BUILD_EXECUTABLE) -endef - -# set local compilation flags for IGT tests -IGT_LOCAL_CFLAGS += -DHAVE_STRUCT_SYSINFO_TOTALRAM -DANDROID -UNDEBUG -IGT_LOCAL_CFLAGS += -std=gnu99 -# FIXME: drop once Bionic correctly annotates "noreturn" on pthread_exit -IGT_LOCAL_CFLAGS += -Wno-error=return-type - -# set local includes -IGT_LOCAL_C_INCLUDES = $(LOCAL_PATH)/../lib \ - $(LOCAL_PATH)/../lib/stubs/drm/ - -# set local libraries -IGT_LOCAL_STATIC_LIBRARIES := libintel_gpu_tools -IGT_LOCAL_SHARED_LIBRARIES := libpciaccess libdrm libdrm_intel - -$(foreach item,$($(check_prog_list)),$(eval $(call add_test,$(item)))) - diff --git a/tests/Android.mk b/tests/Android.mk deleted file mode 100644 index c6e966fa..00000000 --- a/tests/Android.mk +++ /dev/null @@ -1,83 +0,0 @@ -LOCAL_PATH := $(call my-dir) - -include $(LOCAL_PATH)/Makefile.sources - -#================# -# each igt test is a separate executable. define a function to build one of these tests -define add_test - include $(CLEAR_VARS) - - # specific to this test - LOCAL_SRC_FILES := $1.c - LOCAL_MODULE := $1 - - # common to all tests - LOCAL_CFLAGS += ${IGT_LOCAL_CFLAGS} - LOCAL_C_INCLUDES = ${IGT_LOCAL_C_INCLUDES} - LOCAL_STATIC_LIBRARIES := ${IGT_LOCAL_STATIC_LIBRARIES} - LOCAL_SHARED_LIBRARIES := ${IGT_LOCAL_SHARED_LIBRARIES} - - LOCAL_MODULE_TAGS := optional - # ask linker to define a specific symbol; we use this to identify IGT tests - LOCAL_LDFLAGS := -Wl,--defsym=$2=0 -lkmod - LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/intel/validation/core/igt - - include $(BUILD_EXECUTABLE) -endef - - -# some tests still do not build under android -skip_tests_list := -skip_tests_list += testdisplay # needs glib.h -skip_tests_list += pm_rpm - -# set local compilation flags for IGT tests -IGT_LOCAL_CFLAGS += -DHAVE_STRUCT_SYSINFO_TOTALRAM -DANDROID -UNDEBUG -IGT_LOCAL_CFLAGS += -include "check-ndebug.h" -std=gnu99 -# FIXME: drop once Bionic correctly annotates "noreturn" on pthread_exit -IGT_LOCAL_CFLAGS += -Wno-error=return-type -# Excessive complaining for established cases. Rely on the Linux version warnings. -IGT_LOCAL_CFLAGS += -Wno-sign-compare - -# set local includes -IGT_LOCAL_C_INCLUDES = $(LOCAL_PATH)/../lib \ - $(LOCAL_PATH)/../lib/stubs/drm/ - -# set local libraries -IGT_LOCAL_STATIC_LIBRARIES := libintel_gpu_tools -IGT_LOCAL_SHARED_LIBRARIES := libpciaccess libkmod libdrm libdrm_intel - -# handle cairo requirements if it is enabled -ifeq ("${ANDROID_HAS_CAIRO}", "1") - IGT_LOCAL_C_INCLUDES += ${ANDROID_BUILD_TOP}/external/cairo-1.12.16/src - IGT_LOCAL_SHARED_LIBRARIES += libcairo - IGT_LOCAL_CFLAGS += -DANDROID_HAS_CAIRO=1 -else -# the following tests depend on cairo, so skip them - skip_tests_list += \ - gem_render_copy \ - pm_lpsp \ - drm_read \ - gem_exec_blt \ - perf \ - prime_mmap_kms - -# All kms tests depend on cairo - tmp_list := $(foreach test_name, $(TESTS_progs),\ - $(if $(findstring kms_,$(test_name)),$(test_name))) - skip_tests_list += $(tmp_list) - - tmp_list := $(foreach test_name, $(TESTS_progs_M),\ - $(if $(findstring kms_,$(test_name)),$(test_name))) - skip_tests_list += $(tmp_list) - - IGT_LOCAL_CFLAGS += -DANDROID_HAS_CAIRO=0 -endif - -# create two test lists, one for simple single tests, one for tests that have subtests -tests_list := $(filter-out $(skip_tests_list),$(TESTS_progs) $(HANG) $(TESTS_testsuite)) -tests_list_M := $(filter-out $(skip_tests_list),$(TESTS_progs_M)) - -$(foreach item,$(tests_list),$(eval $(call add_test,$(item),"IGT_SINGLE_TEST"))) -$(foreach item,$(tests_list_M),$(eval $(call add_test,$(item),"IGT_MULTI_TEST"))) - diff --git a/tests/core_get_client_auth.c b/tests/core_get_client_auth.c index 676083d5..9c64699d 100644 --- a/tests/core_get_client_auth.c +++ b/tests/core_get_client_auth.c @@ -51,12 +51,10 @@ is_local_tid(pid_t tid) { #ifndef __linux__ return pthread_self() == tid; -#elif !defined(ANDROID) +#else /* On Linux systems, drmGetClient() would return the thread ID instead of the actual process ID */ return syscall(SYS_gettid) == tid; -#else - return gettid() == tid; #endif } diff --git a/tests/gem_exec_nop.c b/tests/gem_exec_nop.c index c9280795..b5f15807 100644 --- a/tests/gem_exec_nop.c +++ b/tests/gem_exec_nop.c @@ -142,7 +142,6 @@ stable_nop_on_ring(int fd, uint32_t handle, unsigned int engine, return n; } -#if !defined(ANDROID) || ANDROID_HAS_CAIRO #define assert_within_epsilon(x, ref, tolerance) \ igt_assert_f((x) <= (1.0 + tolerance) * ref && \ (x) >= (1.0 - tolerance) * ref, \ @@ -187,7 +186,6 @@ static void headless(int fd, uint32_t handle) /* check that the two execution speeds are roughly the same */ assert_within_epsilon(n_headless, n_display, 0.1f); } -#endif static bool ignore_engine(int fd, unsigned engine) { @@ -710,13 +708,11 @@ igt_main } } -#if !defined(ANDROID) || ANDROID_HAS_CAIRO igt_subtest("headless") { /* Requires master for changing display modes */ igt_require(drmSetMaster(device) == 0); headless(device, handle); } -#endif igt_fixture { igt_stop_hang_detector(); diff --git a/tools/Android.mk b/tools/Android.mk deleted file mode 100644 index 96075c9d..00000000 --- a/tools/Android.mk +++ /dev/null @@ -1,82 +0,0 @@ -LOCAL_PATH := $(call my-dir) - -include $(LOCAL_PATH)/Makefile.sources - -LOCAL_TOOLS_DIR := intel/validation/core/igt/tools - -#================# - -define add_tool - include $(CLEAR_VARS) - - ifeq ($($(1)_SOURCES),) - LOCAL_SRC_FILES := $1.c - else - LOCAL_SRC_FILES := $(filter-out %.h,$($(1)_SOURCES)) - endif - - LOCAL_CFLAGS += -DHAVE_TERMIOS_H - LOCAL_CFLAGS += -DHAVE_STRUCT_SYSINFO_TOTALRAM - LOCAL_CFLAGS += -DANDROID -UNDEBUG - LOCAL_CFLAGS += -std=gnu99 - # FIXME: drop once Bionic correctly annotates "noreturn" on pthread_exit - LOCAL_CFLAGS += -Wno-error=return-type - # Excessive complaining for established cases. Rely on the Linux version warnings. - LOCAL_CFLAGS += -Wno-sign-compare - LOCAL_LDFLAGS += -lkmod - ifeq ($($(1)_LDFLAGS),) - else - LOCAL_LDFLAGS += $($(1)_LDFLAGS) - endif - - LOCAL_C_INCLUDES = $(LOCAL_PATH)/../lib \ - $(LOCAL_PATH)/../lib/stubs/drm/ - - LOCAL_MODULE := $1_tool - LOCAL_MODULE_TAGS := optional - - LOCAL_STATIC_LIBRARIES := libintel_gpu_tools - - LOCAL_SHARED_LIBRARIES := libpciaccess \ - libkmod \ - libdrm \ - libdrm_intel \ - libz - - # Tools dir on host - LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/$(LOCAL_TOOLS_DIR) - # Tools dir on target. - LOCAL_CFLAGS += -DPKGDATADIR=\"/system/vendor/$(LOCAL_TOOLS_DIR)\" - - include $(BUILD_EXECUTABLE) -endef - -#================# - -# Copy the register files -$(shell mkdir -p $(TARGET_OUT_VENDOR)/$(LOCAL_TOOLS_DIR)/registers) -$(shell cp $(LOCAL_PATH)/registers/* $(TARGET_OUT_VENDOR)/$(LOCAL_TOOLS_DIR)/registers) - -bin_PROGRAMS := $(tools_prog_lists) - -skip_tools_list := \ - intel_framebuffer_dump \ - intel_guc_logger \ - intel_l3_parity \ - intel_reg_dumper \ - intel_vga_read \ - intel_vga_write - -ifneq ("${ANDROID_HAS_CAIRO}", "1") - skip_tools_list += intel_display_crc - skip_tools_list += intel_residency -endif - -ifeq ($(HAVE_LIBDRM_INTEL),true) - bin_PROGRAMS += $(LIBDRM_INTEL_BIN) - intel_error_decode_LDFLAGS = -lz -endif - -tools_list := $(filter-out $(skip_tools_list),$(bin_PROGRAMS)) - -$(foreach item,$(tools_list),$(eval $(call add_tool,$(item))))
This patch gets rid of the Android support, deleting all the hacks and moving code around to the places it belongs. Android build is not really maintained properly and rots rather fast. With recent push for Meson here and Android going for Soong it will only accelerate. It's a good time to drop the illusion of providing any support. Cc: Daniel Vetter <daniel.vetter@intel.com> Cc: Kalyan Kondapally <kalyan.kondapally@intel.com> Cc: Petri Latvala <petri.latvala@intel.com> Cc: Radoslaw Szwichtenberg <radoslaw.szwichtenberg@intel.com> Signed-off-by: Arkadiusz Hiler <arkadiusz.hiler@intel.com> --- Android.mk | 4 -- assembler/ralloc.c | 5 --- benchmarks/Android.mk | 46 --------------------- benchmarks/gem_syslatency.c | 2 - lib/Android.mk | 53 ------------------------ lib/drmtest.h | 16 -------- lib/igt_aux.c | 95 -------------------------------------------- lib/igt_aux.h | 5 --- lib/igt_core.c | 68 ------------------------------- lib/igt_debugfs.c | 25 +----------- lib/igt_fb.h | 7 ---- lib/igt_kmod.h | 4 -- lib/igt_kms.c | 89 +++++++++++++++++++++++++++++++++++++++++ lib/tests/Android.mk | 41 ------------------- tests/Android.mk | 83 -------------------------------------- tests/core_get_client_auth.c | 4 +- tests/gem_exec_nop.c | 4 -- tools/Android.mk | 82 -------------------------------------- 18 files changed, 91 insertions(+), 542 deletions(-) delete mode 100644 Android.mk delete mode 100644 benchmarks/Android.mk delete mode 100644 lib/Android.mk delete mode 100644 lib/tests/Android.mk delete mode 100644 tests/Android.mk delete mode 100644 tools/Android.mk