[Qemu-devel] [RFC PATCH] tcg: add ability to dump /tmp/perf-pid.map files
From: Alex Bennée alex.ben...@linaro.org This allows the perf tool to map samples to each individual translation block. This could be expanded for user space but currently it gives enough information to find any hotblocks by other means. --- qemu-options.hx | 10 ++ tcg/tcg.c | 21 + vl.c| 6 ++ 3 files changed, 37 insertions(+) diff --git a/qemu-options.hx b/qemu-options.hx index c5577be..09fb1d0 100644 --- a/qemu-options.hx +++ b/qemu-options.hx @@ -2683,6 +2683,16 @@ Will dump output for any code in the 0x1000 sized block starting at 0x8000 and the 0x200 sized block starting at 0xffc8. ETEXI +DEF(perfmap, 0, QEMU_OPTION_PERFMAP, \ +-perfmap generate a /tmp/perf-${pid}.map file for perf\n, +QEMU_ARCH_ALL) +STEXI +@item -perfmap +@findex -perfmap +This will cause QEMU to generate a map file for Linux perf tools that will allow +basic profiling information to be broken down into basic blocks. +ETEXI + DEF(L, HAS_ARG, QEMU_OPTION_L, \ -L path set the directory for the BIOS, VGA BIOS and keymaps\n, QEMU_ARCH_ALL) diff --git a/tcg/tcg.c b/tcg/tcg.c index 57d2b82..a24f581 100644 --- a/tcg/tcg.c +++ b/tcg/tcg.c @@ -27,6 +27,8 @@ #define USE_TCG_OPTIMIZATIONS #include config.h +#include glib.h +#include glib/gstdio.h /* Define to jump the ELF file used to communicate with GDB. */ #undef DEBUG_JIT @@ -106,6 +108,8 @@ static int tcg_target_const_match(tcg_target_long val, static void tcg_out_tb_init(TCGContext *s); static void tcg_out_tb_finalize(TCGContext *s); +static void tcg_write_perfmap(uint8_t *start, uint64_t size, uint64_t target_pc); +void qemu_tcg_enable_perfmap(void); TCGOpDef tcg_op_defs[] = { #define DEF(s, oargs, iargs, cargs, flags) { #s, oargs, iargs, cargs, iargs + oargs + cargs, flags }, @@ -2575,6 +2579,8 @@ static inline int tcg_gen_code_common(TCGContext *s, uint64_t target_pc, the_end: /* Generate TB finalization at the end of block */ tcg_out_tb_finalize(s); + +tcg_write_perfmap(gen_code_buf, s-code_ptr - gen_code_buf, target_pc); return -1; } @@ -2666,6 +2672,21 @@ void tcg_dump_info(FILE *f, fprintf_function cpu_fprintf) } #endif +static FILE *tcg_perfmap = NULL; +void qemu_tcg_enable_perfmap(void) { +gchar * map_file = g_strdup_printf(/tmp/perf-%d.map, getpid()); +tcg_perfmap = g_fopen(map_file, w); +g_free(map_file); +} + +static void tcg_write_perfmap(uint8_t *start, uint64_t size, uint64_t target_pc) +{ +if (tcg_perfmap) { +g_fprintf(tcg_perfmap, %lx %lx subject-0x%lx\n, + (uint64_t) start, size, target_pc); +} +} + #ifdef ELF_HOST_MACHINE /* In order to use this feature, the backend needs to do three things: diff --git a/vl.c b/vl.c index c036367..f1c3c3d 100644 --- a/vl.c +++ b/vl.c @@ -123,6 +123,9 @@ int main(int argc, char **argv) #define MAX_VIRTIO_CONSOLES 1 #define MAX_SCLP_CONSOLES 1 +/* seems better than pulling in all the tcg headers? */ +extern void qemu_tcg_enable_perfmap(void); + static const char *data_dir[16]; static int data_dir_idx; const char *bios_name = NULL; @@ -3345,6 +3348,9 @@ int main(int argc, char **argv, char **envp) case QEMU_OPTION_DFILTER: qemu_set_dfilter_ranges(optarg); break; +case QEMU_OPTION_PERFMAP: +qemu_tcg_enable_perfmap(); +break; case QEMU_OPTION_s: add_device_config(DEV_GDB, tcp:: DEFAULT_GDBSTUB_PORT); break; -- 1.9.1
[Qemu-devel] [RFC PATCH 0/4] qemu-log: various fixes and enhancements
From: Alex Bennée alex.ben...@linaro.org Hi, While working on aarch64 stuff I've made the following changes in my local tree to help me debug. The first is a simple documentation fix. The second is very helpful when your debugging missing instructions while several shells deep in a build system. The final two I've recently written as I'm doing some system mode debugging and found that it's hard to have all the code gen logs turned on when your test case is booting the kernel. Comments and review please. Alex Bennée (4): qemu-log: correct help text for -d cpu qemu-log: support simple pid substitution in logfile qemu-log: new option -dfilter to limit output qemu-log: make in_asm, out_asm and op_opt understand dfilter cpu-exec.c | 2 +- include/qemu/log.h | 2 ++ qemu-log.c | 75 +++--- qemu-options.hx| 9 +++ tcg/tcg.c | 24 - tcg/tcg.h | 5 ++-- translate-all.c| 7 ++--- vl.c | 3 +++ 8 files changed, 105 insertions(+), 22 deletions(-) -- 1.9.1
[Qemu-devel] [RFC PATCH 4/4] qemu-log: make in_asm, out_asm and op_opt understand dfilter
From: Alex Bennée alex.ben...@linaro.org This ensures the code generation debug code will honour -dfilter if set. diff --git a/cpu-exec.c b/cpu-exec.c index 0914d3c..9aa3f3f 100644 --- a/cpu-exec.c +++ b/cpu-exec.c @@ -610,7 +610,7 @@ int cpu_exec(CPUArchState *env) next_tb = 0; tcg_ctx.tb_ctx.tb_invalidated_flag = 0; } -if (qemu_loglevel_mask(CPU_LOG_EXEC)) { +if (qemu_loglevel_mask(CPU_LOG_EXEC) qemu_log_in_addr_range(tb-pc)) { qemu_log(Trace %p [ TARGET_FMT_lx ] %s\n, tb-tc_ptr, tb-pc, lookup_symbol(tb-pc)); } diff --git a/tcg/tcg.c b/tcg/tcg.c index f1e0763..57d2b82 100644 --- a/tcg/tcg.c +++ b/tcg/tcg.c @@ -2452,8 +2452,8 @@ static void dump_op_count(void) #endif -static inline int tcg_gen_code_common(TCGContext *s, uint8_t *gen_code_buf, - long search_pc) +static inline int tcg_gen_code_common(TCGContext *s, uint64_t target_pc, + uint8_t *gen_code_buf, long search_pc) { TCGOpcode opc; int op_index; @@ -2461,7 +2461,8 @@ static inline int tcg_gen_code_common(TCGContext *s, uint8_t *gen_code_buf, const TCGArg *args; #ifdef DEBUG_DISAS -if (unlikely(qemu_loglevel_mask(CPU_LOG_TB_OP))) { +if (unlikely(qemu_loglevel_mask(CPU_LOG_TB_OP) + qemu_log_in_addr_range(target_pc))) { qemu_log(OP:\n); tcg_dump_ops(s); qemu_log(\n); @@ -2489,7 +2490,8 @@ static inline int tcg_gen_code_common(TCGContext *s, uint8_t *gen_code_buf, #endif #ifdef DEBUG_DISAS -if (unlikely(qemu_loglevel_mask(CPU_LOG_TB_OP_OPT))) { +if (unlikely(qemu_loglevel_mask(CPU_LOG_TB_OP_OPT) + qemu_log_in_addr_range(target_pc))) { qemu_log(OP after optimization and liveness analysis:\n); tcg_dump_ops(s); qemu_log(\n); @@ -2512,11 +2514,6 @@ static inline int tcg_gen_code_common(TCGContext *s, uint8_t *gen_code_buf, tcg_table_op_count[opc]++; #endif def = tcg_op_defs[opc]; -#if 0 -printf(%s: %d %d %d\n, def-name, - def-nb_oargs, def-nb_iargs, def-nb_cargs); -//dump_regs(s); -#endif switch(opc) { case INDEX_op_mov_i32: case INDEX_op_mov_i64: @@ -2581,7 +2578,7 @@ static inline int tcg_gen_code_common(TCGContext *s, uint8_t *gen_code_buf, return -1; } -int tcg_gen_code(TCGContext *s, uint8_t *gen_code_buf) +int tcg_gen_code(TCGContext *s, uint64_t target_pc, uint8_t *gen_code_buf) { #ifdef CONFIG_PROFILER { @@ -2597,7 +2594,7 @@ int tcg_gen_code(TCGContext *s, uint8_t *gen_code_buf) } #endif -tcg_gen_code_common(s, gen_code_buf, -1); +tcg_gen_code_common(s, target_pc, gen_code_buf, -1); /* flush instruction cache */ flush_icache_range((uintptr_t)gen_code_buf, (uintptr_t)s-code_ptr); @@ -2609,9 +2606,10 @@ int tcg_gen_code(TCGContext *s, uint8_t *gen_code_buf) offset bytes from the start of the TB. The contents of gen_code_buf must not be changed, though writing the same values is ok. Return -1 if not found. */ -int tcg_gen_code_search_pc(TCGContext *s, uint8_t *gen_code_buf, long offset) +int tcg_gen_code_search_pc(TCGContext *s, uint64_t tpc, + uint8_t *gen_code_buf, long offset) { -return tcg_gen_code_common(s, gen_code_buf, offset); +return tcg_gen_code_common(s, tpc, gen_code_buf, offset); } #ifdef CONFIG_PROFILER diff --git a/tcg/tcg.h b/tcg/tcg.h index f7efcb4..9200a25 100644 --- a/tcg/tcg.h +++ b/tcg/tcg.h @@ -559,8 +559,9 @@ void tcg_context_init(TCGContext *s); void tcg_prologue_init(TCGContext *s); void tcg_func_start(TCGContext *s); -int tcg_gen_code(TCGContext *s, uint8_t *gen_code_buf); -int tcg_gen_code_search_pc(TCGContext *s, uint8_t *gen_code_buf, long offset); +int tcg_gen_code(TCGContext *s, uint64_t tpc, uint8_t *gen_code_buf); +int tcg_gen_code_search_pc(TCGContext *s, uint64_t tpc, + uint8_t *gen_code_buf, long offset); void tcg_set_frame(TCGContext *s, int reg, intptr_t start, intptr_t size); diff --git a/translate-all.c b/translate-all.c index f243c10..7596b9c 100644 --- a/translate-all.c +++ b/translate-all.c @@ -176,7 +176,7 @@ int cpu_gen_code(CPUArchState *env, TranslationBlock *tb, int *gen_code_size_ptr s-interm_time += profile_getclock() - ti; s-code_time -= profile_getclock(); #endif -gen_code_size = tcg_gen_code(s, gen_code_buf); +gen_code_size = tcg_gen_code(s, tb-pc, gen_code_buf); *gen_code_size_ptr = gen_code_size; #ifdef CONFIG_PROFILER s-code_time += profile_getclock(); @@ -185,7 +185,8 @@ int cpu_gen_code(CPUArchState *env, TranslationBlock *tb, int *gen_code_size_ptr #endif #ifdef DEBUG_DISAS -if (qemu_loglevel_mask(CPU_LOG_TB_OUT_ASM)) { +if (qemu_loglevel_mask(CPU_LOG_TB_OUT_ASM) +
[Qemu-devel] [RFC PATCH 2/4] qemu-log: support simple pid substitution in logfile
From: Alex Bennée alex.ben...@linaro.org When debugging stuff that occurs over several forks it would be useful not to keep overwriting the one logfile you've set-up. This allows a simple %d to be included once in the logfile parameter which is substituted with getpid(). Signed-off-by: Alex Bennée alex.ben...@linaro.org diff --git a/qemu-log.c b/qemu-log.c index 35bbb56..2897596 100644 --- a/qemu-log.c +++ b/qemu-log.c @@ -81,11 +81,24 @@ void do_qemu_set_log(int log_flags, bool use_own_buffers) qemu_log_close(); } } - +/* + * Allow the user to include %d in their logfile which will be + * substituted with the current PID. This is useful for debugging many + * nested linux-user tasks but will result in lots of logs. + */ void qemu_set_log_filename(const char *filename) { g_free(logfilename); -logfilename = g_strdup(filename); +if (g_strrstr(filename, %d)) { +/* if we are going to format this we'd better validate first */ +if (g_regex_match_simple(^[^%]+%d[^%]+$, filename, 0, 0)) { +logfilename = g_strdup_printf(filename, getpid()); +} else { +g_error(Bad logfile format: %s, filename); +} +} else { +logfilename = g_strdup(filename); +} qemu_log_close(); qemu_set_log(qemu_loglevel); } -- 1.9.1
[Qemu-devel] [RFC PATCH 1/4] qemu-log: correct help text for -d cpu
From: Alex Bennée alex.ben...@linaro.org This doesn't just dump CPU state on translation but on every block entrance. Signed-off-by: Alex Bennée alex.ben...@linaro.org diff --git a/qemu-log.c b/qemu-log.c index 797f2af..35bbb56 100644 --- a/qemu-log.c +++ b/qemu-log.c @@ -105,7 +105,7 @@ const QEMULogItem qemu_log_items[] = { { CPU_LOG_EXEC, exec, show trace before each executed TB (lots of logs) }, { CPU_LOG_TB_CPU, cpu, - show CPU state before block translation }, + show CPU registers before each executed TB (lots of logs) }, { CPU_LOG_PCALL, pcall, x86 only: show protected mode far calls/returns/exceptions }, { CPU_LOG_RESET, cpu_reset, -- 1.9.1
[Qemu-devel] [RFC PATCH 3/4] qemu-log: new option -dfilter to limit output
From: Alex Bennée alex.ben...@linaro.org When debugging big programs or system emulation sometimes you want both the verbosity of cpu,exec et all but don't want to generate lots of logs for unneeded stuff. This patch adds a new option -dfilter which allows you to specify interesting address ranges in the form: -dfilter 0x8000-0x9000,0xffc8+0x200,... Then logging code can use the new qemu_log_in_addr_range() function to decide if it will output logging information for the given range. Signed-off-by: Alex Bennée alex.ben...@linaro.org diff --git a/include/qemu/log.h b/include/qemu/log.h index d515424..25710ad 100644 --- a/include/qemu/log.h +++ b/include/qemu/log.h @@ -174,6 +174,8 @@ static inline void qemu_set_log(int log_flags) } void qemu_set_log_filename(const char *filename); +void qemu_set_dfilter_ranges(const char *ranges); +bool qemu_log_in_addr_range(uint64_t addr); int qemu_str_to_log_mask(const char *str); /* Print a usage message listing all the valid logging categories diff --git a/qemu-log.c b/qemu-log.c index 2897596..e2fa3fd 100644 --- a/qemu-log.c +++ b/qemu-log.c @@ -19,11 +19,13 @@ #include qemu-common.h #include qemu/log.h +#include qemu/range.h static char *logfilename; FILE *qemu_logfile; int qemu_loglevel; static int log_append = 0; +static GSList *debug_regions = NULL; void qemu_log(const char *fmt, ...) { @@ -103,6 +105,60 @@ void qemu_set_log_filename(const char *filename) qemu_set_log(qemu_loglevel); } +/* Returns true if addr is in our debug filter or no filter defined + */ +bool qemu_log_in_addr_range(uint64_t addr) +{ +if (debug_regions) { +GSList *region = debug_regions; +do { +struct Range *range = region-data; +if (addr = range-begin addr = range-end) { +return true; +} +region = g_slist_next(region); +} while (region); +return false; +} else { +return true; +} +} + + +void qemu_set_dfilter_ranges(const char *filter_spec) +{ +gchar **ranges = g_strsplit(filter_spec, ,, 0); +if (ranges) { +gchar **next = ranges; +gchar *r = *next++; +while (r) { +gchar *delim = g_strrstr(r, -); +if (!delim) { +delim = g_strrstr(r, +); +} +if (delim) { +struct Range *range = g_malloc(sizeof(Range)); +range-begin = strtoul(r, NULL, 0); +switch (*delim) { +case '+': +range-end = range-begin + strtoul(delim+1, NULL, 0); +break; +case '-': +range-end = strtoul(delim+1, NULL, 0); +break; +default: +g_assert_not_reached(); +} +debug_regions = g_slist_append(debug_regions, range); +} else { +g_error(Bad range specifier in: %s, r); +} +r = *next++; +} +g_strfreev(ranges); +} +} + const QEMULogItem qemu_log_items[] = { { CPU_LOG_TB_OUT_ASM, out_asm, show generated host assembly code for each compiled TB }, diff --git a/qemu-options.hx b/qemu-options.hx index ee5437b..a5cd095 100644 --- a/qemu-options.hx +++ b/qemu-options.hx @@ -2667,6 +2667,15 @@ STEXI Output log in @var{logfile} instead of to stderr ETEXI +DEF(dfilter, HAS_ARG, QEMU_OPTION_DFILTER, \ +-dfilter range,.. filter debug output to range of addresses (useful for -d cpu,exec,etc..)\n, +QEMU_ARCH_ALL) +STEXI +@item -dfilter @var{range1}[,...] +@findex -dfilter +Filter debug output to that relevant to a range of target addresses +ETEXI + DEF(L, HAS_ARG, QEMU_OPTION_L, \ -L path set the directory for the BIOS, VGA BIOS and keymaps\n, QEMU_ARCH_ALL) diff --git a/vl.c b/vl.c index 02bf8ec..c036367 100644 --- a/vl.c +++ b/vl.c @@ -3342,6 +3342,9 @@ int main(int argc, char **argv, char **envp) case QEMU_OPTION_D: log_file = optarg; break; +case QEMU_OPTION_DFILTER: +qemu_set_dfilter_ranges(optarg); +break; case QEMU_OPTION_s: add_device_config(DEV_GDB, tcp:: DEFAULT_GDBSTUB_PORT); break; -- 1.9.1
[Qemu-devel] [PATCH] trace: teach lttng backend to use format strings
From: Alex Bennée alex.ben...@linaro.org This makes the UST backend pay attention to the format string arguments that are defined when defining payload data. With this you can now ensure integers are reported in hex mode if you want. Signed-off-by: Alex Bennée alex.ben...@linaro.org --- scripts/tracetool/__init__.py| 13 +++-- scripts/tracetool/backend/ust.py | 16 2 files changed, 23 insertions(+), 6 deletions(-) diff --git a/scripts/tracetool/__init__.py b/scripts/tracetool/__init__.py index 175df08..abcdc49 100644 --- a/scripts/tracetool/__init__.py +++ b/scripts/tracetool/__init__.py @@ -118,13 +118,16 @@ class Event(object): Properties of the event. args : Arguments The event arguments. +arg_fmts : str +The format strings for each arugment. _CRE = re.compile(((?Pprops.*)\s+)?(?Pname[^(\s]+)\((?Pargs[^)]*)\)\s*(?Pfmt\.*)?) +_FMT = re.compile((%\w+|%.*PRI\S+)) _VALID_PROPS = set([disable]) -def __init__(self, name, props, fmt, args): +def __init__(self, name, props, fmt, args, arg_fmts): Parameters -- @@ -136,11 +139,15 @@ class Event(object): Event printing format. args : Arguments Event arguments. +arg_fmts : list of str +Format strings for each argument + self.name = name self.properties = props self.fmt = fmt self.args = args +self.arg_fmts = arg_fmts unknown_props = set(self.properties) - self._VALID_PROPS if len(unknown_props) 0: @@ -163,8 +170,10 @@ class Event(object): props = groups[props].split() fmt = groups[fmt] args = Arguments.build(groups[args]) +print %s: %s and %s % (name, args, fmt) +arg_fmts = Event._FMT.findall(fmt) -return Event(name, props, fmt, args) +return Event(name, props, fmt, args, arg_fmts) def __repr__(self): Evaluable string representation for this object. diff --git a/scripts/tracetool/backend/ust.py b/scripts/tracetool/backend/ust.py index 41c1c75..cb09958 100644 --- a/scripts/tracetool/backend/ust.py +++ b/scripts/tracetool/backend/ust.py @@ -56,13 +56,21 @@ def ust_events_h(events): args = , .join(, .join(i) for i in e.args), ) -for t,n in e.args: -if ('int' in t) or ('long' in t) or ('unsigned' in t) or ('size_t' in t): +types = e.args.types() +names = e.args.names() +fmts = e.arg_fmts +print /* %s/%s/%s */ % (types, names, fmts) +for t,n,f in zip(types, names, fmts): +if ('char *' in t) or ('char*' in t): +out(' ctf_string(' + n + ', ' + n + ')') +elif (%p in f) or (x in f) or (PRIx in f): +out(' ctf_integer_hex('+ t + ', ' + n + ', ' + n + ')') +elif (ptr in t) or (* in t): +out(' ctf_integer_hex('+ t + ', ' + n + ', ' + n + ')') +elif ('int' in t) or ('long' in t) or ('unsigned' in t) or ('size_t' in t): out(' ctf_integer(' + t + ', ' + n + ', ' + n + ')') elif ('double' in t) or ('float' in t): out(' ctf_float(' + t + ', ' + n + ', ' + n + ')') -elif ('char *' in t) or ('char*' in t): -out(' ctf_string(' + n + ', ' + n + ')') elif ('void *' in t) or ('void*' in t): out(' ctf_integer_hex(unsigned long, ' + n + ', ' + n + ')') -- 1.9.1
[Qemu-devel] [PATCH] trace: teach lttng backend to use format strings
From: Alex Bennée alex.ben...@linaro.org This makes the UST backend pay attention to the format string arguments that are defined when defining payload data. With this you can now ensure integers are reported in hex mode if you want. Signed-off-by: Alex Bennée alex.ben...@linaro.org --- v2 - remove silly debug statements --- scripts/tracetool/__init__.py| 12 ++-- scripts/tracetool/backend/ust.py | 17 - 2 files changed, 22 insertions(+), 7 deletions(-) diff --git a/scripts/tracetool/__init__.py b/scripts/tracetool/__init__.py index 175df08..71e2ab5 100644 --- a/scripts/tracetool/__init__.py +++ b/scripts/tracetool/__init__.py @@ -118,13 +118,16 @@ class Event(object): Properties of the event. args : Arguments The event arguments. +arg_fmts : str +The format strings for each arugment. _CRE = re.compile(((?Pprops.*)\s+)?(?Pname[^(\s]+)\((?Pargs[^)]*)\)\s*(?Pfmt\.*)?) +_FMT = re.compile((%\w+|%.*PRI\S+)) _VALID_PROPS = set([disable]) -def __init__(self, name, props, fmt, args): +def __init__(self, name, props, fmt, args, arg_fmts): Parameters -- @@ -136,11 +139,15 @@ class Event(object): Event printing format. args : Arguments Event arguments. +arg_fmts : list of str +Format strings for each argument + self.name = name self.properties = props self.fmt = fmt self.args = args +self.arg_fmts = arg_fmts unknown_props = set(self.properties) - self._VALID_PROPS if len(unknown_props) 0: @@ -163,8 +170,9 @@ class Event(object): props = groups[props].split() fmt = groups[fmt] args = Arguments.build(groups[args]) +arg_fmts = Event._FMT.findall(fmt) -return Event(name, props, fmt, args) +return Event(name, props, fmt, args, arg_fmts) def __repr__(self): Evaluable string representation for this object. diff --git a/scripts/tracetool/backend/ust.py b/scripts/tracetool/backend/ust.py index 41c1c75..6223f20 100644 --- a/scripts/tracetool/backend/ust.py +++ b/scripts/tracetool/backend/ust.py @@ -56,13 +56,20 @@ def ust_events_h(events): args = , .join(, .join(i) for i in e.args), ) -for t,n in e.args: -if ('int' in t) or ('long' in t) or ('unsigned' in t) or ('size_t' in t): +types = e.args.types() +names = e.args.names() +fmts = e.arg_fmts +for t,n,f in zip(types, names, fmts): +if ('char *' in t) or ('char*' in t): +out(' ctf_string(' + n + ', ' + n + ')') +elif (%p in f) or (x in f) or (PRIx in f): +out(' ctf_integer_hex('+ t + ', ' + n + ', ' + n + ')') +elif (ptr in t) or (* in t): +out(' ctf_integer_hex('+ t + ', ' + n + ', ' + n + ')') +elif ('int' in t) or ('long' in t) or ('unsigned' in t) or ('size_t' in t): out(' ctf_integer(' + t + ', ' + n + ', ' + n + ')') elif ('double' in t) or ('float' in t): out(' ctf_float(' + t + ', ' + n + ', ' + n + ')') -elif ('char *' in t) or ('char*' in t): -out(' ctf_string(' + n + ', ' + n + ')') elif ('void *' in t) or ('void*' in t): out(' ctf_integer_hex(unsigned long, ' + n + ', ' + n + ')') @@ -79,4 +86,4 @@ def ust_events_h(events): ')', '', name = e.name, -) \ No newline at end of file +) -- 1.9.1
[Qemu-devel] [RCF PATCH 0/2] Improving TCG debug output
From: Alex Bennée alex.ben...@linaro.org Hi, These two patches have been sitting in my personal tree for a while and I thought it was worth soliciting feedback as to their wider usefulness. The first is simply an attempt to make tcg abort failures a little less terse. The second I found useful when I was debugging a complex set of TCG ops for a round, shift and narrow implementation. The alternative was to set up GDB and step through the generated target code (or just infer from the copious dumps). The macro magic might be a bit much though. Alex Bennée (2): tcg: add tcg_abort_dbg() for additional debug info tcg: add debug helpers tcg_debug_dump_i(32|64) Makefile.target | 2 +- target-arm/helper.h | 2 ++ tcg/i386/tcg-target.c | 4 ++-- tcg/optimize.c| 2 +- tcg/tcg-helpers.c | 32 + tcg/tcg-helpers.h | 57 +++ tcg/tcg.h | 7 +-- 7 files changed, 100 insertions(+), 6 deletions(-) create mode 100644 tcg/tcg-helpers.c create mode 100644 tcg/tcg-helpers.h -- 1.9.0
[Qemu-devel] [RCF PATCH 2/2] tcg: add debug helpers tcg_debug_dump_i(32|64)
From: Alex Benn??e alex.ben...@linaro.org The helpers are useful for debugging if you want to inspect interim values of tcg temp variables while executing TCG generated code. This is an alternative to tracing with logs or inspecting with GDB. The functions do take format strings but to prevent massive memory loss it will default to a constant string after a short number of uses. create mode 100644 tcg/tcg-helpers.c create mode 100644 tcg/tcg-helpers.h diff --git a/Makefile.target b/Makefile.target index ba12340..a87b7d7 100644 --- a/Makefile.target +++ b/Makefile.target @@ -73,7 +73,7 @@ all: $(PROGS) stap # # cpu emulator library obj-y = exec.o translate-all.o cpu-exec.o -obj-y += tcg/tcg.o tcg/optimize.o +obj-y += tcg/tcg.o tcg/optimize.o tcg/tcg-helpers.o obj-$(CONFIG_TCG_INTERPRETER) += tci.o obj-$(CONFIG_TCG_INTERPRETER) += disas/tci.o obj-y += fpu/softfloat.o diff --git a/target-arm/helper.h b/target-arm/helper.h index 8923f8a..7600c21 100644 --- a/target-arm/helper.h +++ b/target-arm/helper.h @@ -507,4 +507,6 @@ DEF_HELPER_FLAGS_3(crc32c, TCG_CALL_NO_RWG_SE, i32, i32, i32, i32) #include helper-a64.h #endif +#include tcg/tcg-helpers.h + #include exec/def-helper.h diff --git a/tcg/tcg-helpers.c b/tcg/tcg-helpers.c new file mode 100644 index 000..83bfee6 --- /dev/null +++ b/tcg/tcg-helpers.c @@ -0,0 +1,32 @@ +/* + * TCG Common Helper Functions + * + * Copyright (c) 2014 + * Written by Alex Benn??e alex.ben...@linaro.org + * + * This code is licensed under the GNU GPL v2. + * + * This file contains common non-architecture specific helper + * functions that can be used from TCG generated code. Currently these + * are mainly helpful for debugging. + */ + +#include stdlib.h +#include stdio.h + +#include cpu.h +#include exec/exec-all.h +#include helper.h + +/* TCG Value Dumpers */ +uint32_t HELPER(dump_u32)(uint32_t val, void *string) +{ +fprintf(stderr,%s %x\n, (char *) string, val); +return val; +} + +uint64_t HELPER(dump_u64)(uint64_t val, void *string) +{ +fprintf(stderr,%s %lx\n, (char *) string, val); +return val; +} diff --git a/tcg/tcg-helpers.h b/tcg/tcg-helpers.h new file mode 100644 index 000..510d8b5 --- /dev/null +++ b/tcg/tcg-helpers.h @@ -0,0 +1,57 @@ +/* + * TCG Common Helpers + * + * Copyright (c) 2014 + * Written by Alex Benn??e alex.ben...@linaro.org + * + * This code is licensed under the GNU GPL v2. + * + * WARNING: intended to be included in $ARCH/helper.h + */ + +DEF_HELPER_2(dump_u32, i32, i32, ptr) +DEF_HELPER_2(dump_u64, i64, i64, ptr) + + +/* + * Formatting macros + * + * To be useful we would like to format a string with a message to be + * associated with this dump. As these strings have to live the + * lifetime of the generated code we are essentially leaking memory so + * the more times a given dump call is generated the more memory is + * consumed (not so for each time the TCG code itself is called) + */ + +/* This limits the number of malloc'ed strings *per call site* */ +#define TCG_DEBUG_DUMP_MAX_STRINGS 10 + +/* String macro magic */ +#define STRINGIFY_DETAIL(x) #x +#define STRINGIFY(x) STRINGIFY_DETAIL(x) + +#define tcg_debug_dump_i32(tcg32, fmt, ...) \ +do { \ +static int tcg_debug_alloc_strings = 0; \ +gchar *debug_string = (gchar *) __FILE__ : STRINGIFY(__LINE__) :; \ +TCGv_ptr tcg_string; \ +if (tcg_debug_alloc_strings++ TCG_DEBUG_DUMP_MAX_STRINGS) { \ +debug_string = g_strdup_printf(fmt :, ## __VA_ARGS__); \ +} \ +tcg_string = tcg_const_ptr(debug_string); \ +gen_helper_dump_u32(tcg32, tcg32, tcg_string);\ +tcg_temp_free_ptr(tcg_string);\ +} while (0); + +#define tcg_debug_dump_i64(tcg64, fmt, ...) \ +do { \ +static int tcg_debug_alloc_strings = 0; \ +gchar *debug_string = (gchar *) __FILE__ : STRINGIFY(__LINE__) :; \ +TCGv_ptr tcg_string; \ +if (tcg_debug_alloc_strings++ TCG_DEBUG_DUMP_MAX_STRINGS) { \ +debug_string = g_strdup_printf(fmt :, ## __VA_ARGS__); \ +} \ +tcg_string = tcg_const_ptr(debug_string); \ +gen_helper_dump_u64(tcg64, tcg64, tcg_string);\ +tcg_temp_free_ptr(tcg_string);\ +} while (0); -- 1.9.0
[Qemu-devel] [RCF PATCH 1/2] tcg: add tcg_abort_dbg() for additional debug info
From: Alex Bennée alex.ben...@linaro.org There are times the tcg aborts with a fatal but terse error which isn't overly helpful. This adds an alternative macro that can be used to show a little more helper information when an abort occurs. diff --git a/tcg/i386/tcg-target.c b/tcg/i386/tcg-target.c index f832282..1a6c565 100644 --- a/tcg/i386/tcg-target.c +++ b/tcg/i386/tcg-target.c @@ -1342,7 +1342,7 @@ static void tcg_out_qemu_ld_slow_path(TCGContext *s, TCGLabelQemuLdst *l) } break; default: -tcg_abort(); +tcg_abort_dbg(bad opc:%x, opc); } /* Jump to the code corresponding to next IR of qemu_st */ @@ -1519,7 +1519,7 @@ static void tcg_out_qemu_ld_direct(TCGContext *s, TCGReg datalo, TCGReg datahi, } break; default: -tcg_abort(); +tcg_abort_dbg(bad memop=%x, memop); } } diff --git a/tcg/optimize.c b/tcg/optimize.c index 743..ae1a3f8 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -407,7 +407,7 @@ static bool do_constant_folding_cond_eq(TCGCond c) case TCG_COND_EQ: return 1; default: -tcg_abort(); +tcg_abort_dbg(bad condition:%d, c); } } diff --git a/tcg/tcg.h b/tcg/tcg.h index f7efcb4..bfde09f 100644 --- a/tcg/tcg.h +++ b/tcg/tcg.h @@ -657,12 +657,15 @@ typedef struct TCGTargetOpDef { const char *args_ct_str[TCG_MAX_OP_ARGS]; } TCGTargetOpDef; -#define tcg_abort() \ +#define tcg_abort_dbg(fmt, ...)\ do {\ -fprintf(stderr, %s:%d: tcg fatal error\n, __FILE__, __LINE__);\ +fprintf(stderr, %s:%d: tcg fatal error fmt \n,\ +__FILE__, __LINE__, ## __VA_ARGS__);\ abort();\ } while (0) +#define tcg_abort() tcg_abort_dbg() + #ifdef CONFIG_DEBUG_TCG # define tcg_debug_assert(X) do { assert(X); } while (0) #elif QEMU_GNUC_PREREQ(4, 5) -- 1.9.0
[Qemu-devel] [PULL 0/4] Travis Updates
From: Alex Bennée alex.ben...@linaro.org No changes from the original version posted except to add Stefan's reviewed-by tags. I thought it was worth submitting this before we froze for 2.0! The following changes since commit be813ef02d18ba58e1ff32f1706bcacb88f1f764: Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging (2014-03-11 19:52:32 +) are available in the git repository at: g...@github.com:stsquad/qemu.git travis-updates for you to fetch changes up to 3e6fa9a5bb773d0d7d22d9aea0495d91404dfd3d: .travis.yml: add IRC notifications for build failures (2014-03-12 13:52:27 +) Alex Bennée (4): .travis.yml: add a new build target with non-core devlibs .travis.yml: re-enable lttng user space trace test .travis.yml: trivial whitespace fixup .travis.yml: add IRC notifications for build failures .travis.yml | 53 +++-- 1 file changed, 31 insertions(+), 22 deletions(-)
[Qemu-devel] [PULL 1/4] .travis.yml: add a new build target with non-core devlibs
From: Alex Bennée alex.ben...@linaro.org The current builds don't include all the features which are auto-detected and then disabled when the appropriate test packages don't exist. I've added another target that enables all known additional packages for increased coverage. I didn't add it to the core package list to reduce build time. Signed-off-by: Alex Bennée alex.ben...@linaro.org Reviewed-by: Stefan Hajnoczi stefa...@redhat.com diff --git a/.travis.yml b/.travis.yml index c7ff4da..286cf62 100644 --- a/.travis.yml +++ b/.travis.yml @@ -46,6 +46,10 @@ matrix: - env: TARGETS=i386-softmmu,x86_64-softmmu EXTRA_CONFIG=--enable-debug --enable-tcg-interpreter compiler: gcc +# All the extra -dev packages +- env: TARGETS=i386-softmmu,x86_64-softmmu + EXTRA_PKGS=libaio-dev libcap-ng-dev libattr1-dev libbrlapi-dev uuid-dev libusb-1.0.0-dev + compiler: gcc # Currently configure doesn't force --disable-pie - env: TARGETS=i386-softmmu,x86_64-softmmu EXTRA_CONFIG=--enable-gprof --enable-gcov --disable-pie -- 1.9.0
[Qemu-devel] [PULL 3/4] .travis.yml: trivial whitespace fixup
From: Alex Bennée alex.ben...@linaro.org Purely cosmetic but satisfies my OCD. Signed-off-by: Alex Bennée alex.ben...@linaro.org Reviewed-by: Stefan Hajnoczi stefa...@redhat.com diff --git a/.travis.yml b/.travis.yml index 1d78421..0dbf2da 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,23 +14,23 @@ env: - GUI_PKGS=libgtk-3-dev libvte-2.90-dev libsdl1.2-dev libpng12-dev libpixman-1-dev - EXTRA_PKGS= matrix: - - TARGETS=alpha-softmmu,alpha-linux-user - - TARGETS=arm-softmmu,arm-linux-user - - TARGETS=aarch64-softmmu,aarch64-linux-user - - TARGETS=cris-softmmu - - TARGETS=i386-softmmu,x86_64-softmmu - - TARGETS=lm32-softmmu - - TARGETS=m68k-softmmu - - TARGETS=microblaze-softmmu,microblazeel-softmmu - - TARGETS=mips-softmmu,mips64-softmmu,mips64el-softmmu,mipsel-softmmu - - TARGETS=moxie-softmmu - - TARGETS=or32-softmmu, - - TARGETS=ppc-softmmu,ppc64-softmmu,ppcemb-softmmu - - TARGETS=s390x-softmmu - - TARGETS=sh4-softmmu,sh4eb-softmmu - - TARGETS=sparc-softmmu,sparc64-softmmu - - TARGETS=unicore32-softmmu - - TARGETS=xtensa-softmmu,xtensaeb-softmmu +- TARGETS=alpha-softmmu,alpha-linux-user +- TARGETS=arm-softmmu,arm-linux-user +- TARGETS=aarch64-softmmu,aarch64-linux-user +- TARGETS=cris-softmmu +- TARGETS=i386-softmmu,x86_64-softmmu +- TARGETS=lm32-softmmu +- TARGETS=m68k-softmmu +- TARGETS=microblaze-softmmu,microblazeel-softmmu +- TARGETS=mips-softmmu,mips64-softmmu,mips64el-softmmu,mipsel-softmmu +- TARGETS=moxie-softmmu +- TARGETS=or32-softmmu, +- TARGETS=ppc-softmmu,ppc64-softmmu,ppcemb-softmmu +- TARGETS=s390x-softmmu +- TARGETS=sh4-softmmu,sh4eb-softmmu +- TARGETS=sparc-softmmu,sparc64-softmmu +- TARGETS=unicore32-softmmu +- TARGETS=xtensa-softmmu,xtensaeb-softmmu before_install: - git submodule update --init --recursive - sudo apt-get update -qq -- 1.9.0
[Qemu-devel] [PULL 2/4] .travis.yml: re-enable lttng user space trace test
From: Alex Bennée alex.ben...@linaro.org This build was disabled while the lttng tracing was broken. Stefan has recently submitted a pull request with it re-enabled. Signed-off-by: Alex Bennée alex.ben...@linaro.org Reviewed-by: Stefan Hajnoczi stefa...@redhat.com diff --git a/.travis.yml b/.travis.yml index 286cf62..1d78421 100644 --- a/.travis.yml +++ b/.travis.yml @@ -69,8 +69,7 @@ matrix: EXTRA_CONFIG=--enable-trace-backend=ftrace TEST_CMD= compiler: gcc -# This disabled make check for the ftrace backend which needs more setting up -# Currently broken on 12.04 due to mis-packaged liburcu and changed API, will be pulled. -#- env: TARGETS=i386-softmmu,x86_64-softmmu -# EXTRA_PKGS=liblttng-ust-dev liburcu-dev -# EXTRA_CONFIG=--enable-trace-backend=ust +- env: TARGETS=i386-softmmu,x86_64-softmmu + EXTRA_PKGS=liblttng-ust-dev liburcu-dev + EXTRA_CONFIG=--enable-trace-backend=ust + compiler: gcc -- 1.9.0
[Qemu-devel] [PULL 4/4] .travis.yml: add IRC notifications for build failures
From: Alex Bennée alex.ben...@linaro.org I'm trying to avoid spamming the IRC channel (not overly likely as builds take a while). So failure will always be reported but if the build continues to work then the IRC notifications will be quiet. Note any GitHub based repository with Travis enabled will use this notification. If it proves to be too spammy we may want to ask users not to use Travis themselves although this seems sub-optimal. Signed-off-by: Alex Bennée alex.ben...@linaro.org Reviewed-by: Stefan Hajnoczi stefa...@redhat.com diff --git a/.travis.yml b/.travis.yml index 0dbf2da..04da973 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,6 +4,12 @@ python: compiler: - gcc - clang +notifications: + irc: +channels: + - irc.oftc.net#qemu +on_success: change +on_failure: always env: global: - TEST_CMD=make check -- 1.9.0
[Qemu-devel] [RCF PATCH 0/2] Improving TCG debug output
From: Alex Bennée alex.ben...@linaro.org Hi, These two patches have been sitting in my personal tree for a while and I thought it was worth soliciting feedback as to their wider usefulness. The first is simply an attempt to make tcg abort failures a little less terse. The second I found useful when I was debugging a complex set of TCG ops for a round, shift and narrow implementation. The alternative was to set up GDB and step through the generated target code (or just infer from the copious dumps). The macro magic might be a bit much though. Alex Bennée (2): tcg: add tcg_abort_dbg() for additional debug info tcg: add debug helpers tcg_debug_dump_i(32|64) Makefile.target | 2 +- target-arm/helper.h | 2 ++ tcg/i386/tcg-target.c | 4 ++-- tcg/optimize.c| 2 +- tcg/tcg-helpers.c | 32 + tcg/tcg-helpers.h | 57 +++ tcg/tcg.h | 7 +-- 7 files changed, 100 insertions(+), 6 deletions(-) create mode 100644 tcg/tcg-helpers.c create mode 100644 tcg/tcg-helpers.h -- 1.9.0
[Qemu-devel] [RCF PATCH 2/2] tcg: add debug helpers tcg_debug_dump_i(32|64)
From: Alex Benn??e alex.ben...@linaro.org The helpers are useful for debugging if you want to inspect interim values of tcg temp variables while executing TCG generated code. This is an alternative to tracing with logs or inspecting with GDB. The functions do take format strings but to prevent massive memory loss it will default to a constant string after a short number of uses. create mode 100644 tcg/tcg-helpers.c create mode 100644 tcg/tcg-helpers.h diff --git a/Makefile.target b/Makefile.target index ba12340..a87b7d7 100644 --- a/Makefile.target +++ b/Makefile.target @@ -73,7 +73,7 @@ all: $(PROGS) stap # # cpu emulator library obj-y = exec.o translate-all.o cpu-exec.o -obj-y += tcg/tcg.o tcg/optimize.o +obj-y += tcg/tcg.o tcg/optimize.o tcg/tcg-helpers.o obj-$(CONFIG_TCG_INTERPRETER) += tci.o obj-$(CONFIG_TCG_INTERPRETER) += disas/tci.o obj-y += fpu/softfloat.o diff --git a/target-arm/helper.h b/target-arm/helper.h index 8923f8a..7600c21 100644 --- a/target-arm/helper.h +++ b/target-arm/helper.h @@ -507,4 +507,6 @@ DEF_HELPER_FLAGS_3(crc32c, TCG_CALL_NO_RWG_SE, i32, i32, i32, i32) #include helper-a64.h #endif +#include tcg/tcg-helpers.h + #include exec/def-helper.h diff --git a/tcg/tcg-helpers.c b/tcg/tcg-helpers.c new file mode 100644 index 000..83bfee6 --- /dev/null +++ b/tcg/tcg-helpers.c @@ -0,0 +1,32 @@ +/* + * TCG Common Helper Functions + * + * Copyright (c) 2014 + * Written by Alex Benn??e alex.ben...@linaro.org + * + * This code is licensed under the GNU GPL v2. + * + * This file contains common non-architecture specific helper + * functions that can be used from TCG generated code. Currently these + * are mainly helpful for debugging. + */ + +#include stdlib.h +#include stdio.h + +#include cpu.h +#include exec/exec-all.h +#include helper.h + +/* TCG Value Dumpers */ +uint32_t HELPER(dump_u32)(uint32_t val, void *string) +{ +fprintf(stderr,%s %x\n, (char *) string, val); +return val; +} + +uint64_t HELPER(dump_u64)(uint64_t val, void *string) +{ +fprintf(stderr,%s %lx\n, (char *) string, val); +return val; +} diff --git a/tcg/tcg-helpers.h b/tcg/tcg-helpers.h new file mode 100644 index 000..510d8b5 --- /dev/null +++ b/tcg/tcg-helpers.h @@ -0,0 +1,57 @@ +/* + * TCG Common Helpers + * + * Copyright (c) 2014 + * Written by Alex Benn??e alex.ben...@linaro.org + * + * This code is licensed under the GNU GPL v2. + * + * WARNING: intended to be included in $ARCH/helper.h + */ + +DEF_HELPER_2(dump_u32, i32, i32, ptr) +DEF_HELPER_2(dump_u64, i64, i64, ptr) + + +/* + * Formatting macros + * + * To be useful we would like to format a string with a message to be + * associated with this dump. As these strings have to live the + * lifetime of the generated code we are essentially leaking memory so + * the more times a given dump call is generated the more memory is + * consumed (not so for each time the TCG code itself is called) + */ + +/* This limits the number of malloc'ed strings *per call site* */ +#define TCG_DEBUG_DUMP_MAX_STRINGS 10 + +/* String macro magic */ +#define STRINGIFY_DETAIL(x) #x +#define STRINGIFY(x) STRINGIFY_DETAIL(x) + +#define tcg_debug_dump_i32(tcg32, fmt, ...) \ +do { \ +static int tcg_debug_alloc_strings = 0; \ +gchar *debug_string = (gchar *) __FILE__ : STRINGIFY(__LINE__) :; \ +TCGv_ptr tcg_string; \ +if (tcg_debug_alloc_strings++ TCG_DEBUG_DUMP_MAX_STRINGS) { \ +debug_string = g_strdup_printf(fmt :, ## __VA_ARGS__); \ +} \ +tcg_string = tcg_const_ptr(debug_string); \ +gen_helper_dump_u32(tcg32, tcg32, tcg_string);\ +tcg_temp_free_ptr(tcg_string);\ +} while (0); + +#define tcg_debug_dump_i64(tcg64, fmt, ...) \ +do { \ +static int tcg_debug_alloc_strings = 0; \ +gchar *debug_string = (gchar *) __FILE__ : STRINGIFY(__LINE__) :; \ +TCGv_ptr tcg_string; \ +if (tcg_debug_alloc_strings++ TCG_DEBUG_DUMP_MAX_STRINGS) { \ +debug_string = g_strdup_printf(fmt :, ## __VA_ARGS__); \ +} \ +tcg_string = tcg_const_ptr(debug_string); \ +gen_helper_dump_u64(tcg64, tcg64, tcg_string);\ +tcg_temp_free_ptr(tcg_string);\ +} while (0); -- 1.9.0
[Qemu-devel] [PULL 3/4] .travis.yml: trivial whitespace fixup
From: Alex Bennée alex.ben...@linaro.org Purely cosmetic but satisfies my OCD. Signed-off-by: Alex Bennée alex.ben...@linaro.org Reviewed-by: Stefan Hajnoczi stefa...@redhat.com diff --git a/.travis.yml b/.travis.yml index 1d78421..0dbf2da 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,23 +14,23 @@ env: - GUI_PKGS=libgtk-3-dev libvte-2.90-dev libsdl1.2-dev libpng12-dev libpixman-1-dev - EXTRA_PKGS= matrix: - - TARGETS=alpha-softmmu,alpha-linux-user - - TARGETS=arm-softmmu,arm-linux-user - - TARGETS=aarch64-softmmu,aarch64-linux-user - - TARGETS=cris-softmmu - - TARGETS=i386-softmmu,x86_64-softmmu - - TARGETS=lm32-softmmu - - TARGETS=m68k-softmmu - - TARGETS=microblaze-softmmu,microblazeel-softmmu - - TARGETS=mips-softmmu,mips64-softmmu,mips64el-softmmu,mipsel-softmmu - - TARGETS=moxie-softmmu - - TARGETS=or32-softmmu, - - TARGETS=ppc-softmmu,ppc64-softmmu,ppcemb-softmmu - - TARGETS=s390x-softmmu - - TARGETS=sh4-softmmu,sh4eb-softmmu - - TARGETS=sparc-softmmu,sparc64-softmmu - - TARGETS=unicore32-softmmu - - TARGETS=xtensa-softmmu,xtensaeb-softmmu +- TARGETS=alpha-softmmu,alpha-linux-user +- TARGETS=arm-softmmu,arm-linux-user +- TARGETS=aarch64-softmmu,aarch64-linux-user +- TARGETS=cris-softmmu +- TARGETS=i386-softmmu,x86_64-softmmu +- TARGETS=lm32-softmmu +- TARGETS=m68k-softmmu +- TARGETS=microblaze-softmmu,microblazeel-softmmu +- TARGETS=mips-softmmu,mips64-softmmu,mips64el-softmmu,mipsel-softmmu +- TARGETS=moxie-softmmu +- TARGETS=or32-softmmu, +- TARGETS=ppc-softmmu,ppc64-softmmu,ppcemb-softmmu +- TARGETS=s390x-softmmu +- TARGETS=sh4-softmmu,sh4eb-softmmu +- TARGETS=sparc-softmmu,sparc64-softmmu +- TARGETS=unicore32-softmmu +- TARGETS=xtensa-softmmu,xtensaeb-softmmu before_install: - git submodule update --init --recursive - sudo apt-get update -qq -- 1.9.0
[Qemu-devel] [PULL 0/4] Travis Updates
From: Alex Bennée alex.ben...@linaro.org No changes from the original version posted except to add Stefan's reviewed-by tags. I thought it was worth submitting this before we froze for 2.0! The following changes since commit be813ef02d18ba58e1ff32f1706bcacb88f1f764: Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging (2014-03-11 19:52:32 +) are available in the git repository at: g...@github.com:stsquad/qemu.git travis-updates for you to fetch changes up to 3e6fa9a5bb773d0d7d22d9aea0495d91404dfd3d: .travis.yml: add IRC notifications for build failures (2014-03-12 13:52:27 +) Alex Bennée (4): .travis.yml: add a new build target with non-core devlibs .travis.yml: re-enable lttng user space trace test .travis.yml: trivial whitespace fixup .travis.yml: add IRC notifications for build failures .travis.yml | 53 +++-- 1 file changed, 31 insertions(+), 22 deletions(-)
[Qemu-devel] [PULL 4/4] .travis.yml: add IRC notifications for build failures
From: Alex Bennée alex.ben...@linaro.org I'm trying to avoid spamming the IRC channel (not overly likely as builds take a while). So failure will always be reported but if the build continues to work then the IRC notifications will be quiet. Note any GitHub based repository with Travis enabled will use this notification. If it proves to be too spammy we may want to ask users not to use Travis themselves although this seems sub-optimal. Signed-off-by: Alex Bennée alex.ben...@linaro.org Reviewed-by: Stefan Hajnoczi stefa...@redhat.com diff --git a/.travis.yml b/.travis.yml index 0dbf2da..04da973 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,6 +4,12 @@ python: compiler: - gcc - clang +notifications: + irc: +channels: + - irc.oftc.net#qemu +on_success: change +on_failure: always env: global: - TEST_CMD=make check -- 1.9.0
[Qemu-devel] [PULL 1/4] .travis.yml: add a new build target with non-core devlibs
From: Alex Bennée alex.ben...@linaro.org The current builds don't include all the features which are auto-detected and then disabled when the appropriate test packages don't exist. I've added another target that enables all known additional packages for increased coverage. I didn't add it to the core package list to reduce build time. Signed-off-by: Alex Bennée alex.ben...@linaro.org Reviewed-by: Stefan Hajnoczi stefa...@redhat.com diff --git a/.travis.yml b/.travis.yml index c7ff4da..286cf62 100644 --- a/.travis.yml +++ b/.travis.yml @@ -46,6 +46,10 @@ matrix: - env: TARGETS=i386-softmmu,x86_64-softmmu EXTRA_CONFIG=--enable-debug --enable-tcg-interpreter compiler: gcc +# All the extra -dev packages +- env: TARGETS=i386-softmmu,x86_64-softmmu + EXTRA_PKGS=libaio-dev libcap-ng-dev libattr1-dev libbrlapi-dev uuid-dev libusb-1.0.0-dev + compiler: gcc # Currently configure doesn't force --disable-pie - env: TARGETS=i386-softmmu,x86_64-softmmu EXTRA_CONFIG=--enable-gprof --enable-gcov --disable-pie -- 1.9.0
[Qemu-devel] [RCF PATCH 1/2] tcg: add tcg_abort_dbg() for additional debug info
From: Alex Bennée alex.ben...@linaro.org There are times the tcg aborts with a fatal but terse error which isn't overly helpful. This adds an alternative macro that can be used to show a little more helper information when an abort occurs. diff --git a/tcg/i386/tcg-target.c b/tcg/i386/tcg-target.c index f832282..1a6c565 100644 --- a/tcg/i386/tcg-target.c +++ b/tcg/i386/tcg-target.c @@ -1342,7 +1342,7 @@ static void tcg_out_qemu_ld_slow_path(TCGContext *s, TCGLabelQemuLdst *l) } break; default: -tcg_abort(); +tcg_abort_dbg(bad opc:%x, opc); } /* Jump to the code corresponding to next IR of qemu_st */ @@ -1519,7 +1519,7 @@ static void tcg_out_qemu_ld_direct(TCGContext *s, TCGReg datalo, TCGReg datahi, } break; default: -tcg_abort(); +tcg_abort_dbg(bad memop=%x, memop); } } diff --git a/tcg/optimize.c b/tcg/optimize.c index 743..ae1a3f8 100644 --- a/tcg/optimize.c +++ b/tcg/optimize.c @@ -407,7 +407,7 @@ static bool do_constant_folding_cond_eq(TCGCond c) case TCG_COND_EQ: return 1; default: -tcg_abort(); +tcg_abort_dbg(bad condition:%d, c); } } diff --git a/tcg/tcg.h b/tcg/tcg.h index f7efcb4..bfde09f 100644 --- a/tcg/tcg.h +++ b/tcg/tcg.h @@ -657,12 +657,15 @@ typedef struct TCGTargetOpDef { const char *args_ct_str[TCG_MAX_OP_ARGS]; } TCGTargetOpDef; -#define tcg_abort() \ +#define tcg_abort_dbg(fmt, ...)\ do {\ -fprintf(stderr, %s:%d: tcg fatal error\n, __FILE__, __LINE__);\ +fprintf(stderr, %s:%d: tcg fatal error fmt \n,\ +__FILE__, __LINE__, ## __VA_ARGS__);\ abort();\ } while (0) +#define tcg_abort() tcg_abort_dbg() + #ifdef CONFIG_DEBUG_TCG # define tcg_debug_assert(X) do { assert(X); } while (0) #elif QEMU_GNUC_PREREQ(4, 5) -- 1.9.0
[Qemu-devel] [PULL 2/4] .travis.yml: re-enable lttng user space trace test
From: Alex Bennée alex.ben...@linaro.org This build was disabled while the lttng tracing was broken. Stefan has recently submitted a pull request with it re-enabled. Signed-off-by: Alex Bennée alex.ben...@linaro.org Reviewed-by: Stefan Hajnoczi stefa...@redhat.com diff --git a/.travis.yml b/.travis.yml index 286cf62..1d78421 100644 --- a/.travis.yml +++ b/.travis.yml @@ -69,8 +69,7 @@ matrix: EXTRA_CONFIG=--enable-trace-backend=ftrace TEST_CMD= compiler: gcc -# This disabled make check for the ftrace backend which needs more setting up -# Currently broken on 12.04 due to mis-packaged liburcu and changed API, will be pulled. -#- env: TARGETS=i386-softmmu,x86_64-softmmu -# EXTRA_PKGS=liblttng-ust-dev liburcu-dev -# EXTRA_CONFIG=--enable-trace-backend=ust +- env: TARGETS=i386-softmmu,x86_64-softmmu + EXTRA_PKGS=liblttng-ust-dev liburcu-dev + EXTRA_CONFIG=--enable-trace-backend=ust + compiler: gcc -- 1.9.0
[Qemu-devel] [PATCH v1 2/4] .travis.yml: re-enable lttng user space trace test
From: Alex Bennée alex.ben...@linaro.org This build was disabled while the lttng tracing was broken. Stefan has recently submitted a pull request with it re-enabled. Signed-off-by: Alex Bennée alex.ben...@linaro.org diff --git a/.travis.yml b/.travis.yml index 286cf62..1d78421 100644 --- a/.travis.yml +++ b/.travis.yml @@ -69,8 +69,7 @@ matrix: EXTRA_CONFIG=--enable-trace-backend=ftrace TEST_CMD= compiler: gcc -# This disabled make check for the ftrace backend which needs more setting up -# Currently broken on 12.04 due to mis-packaged liburcu and changed API, will be pulled. -#- env: TARGETS=i386-softmmu,x86_64-softmmu -# EXTRA_PKGS=liblttng-ust-dev liburcu-dev -# EXTRA_CONFIG=--enable-trace-backend=ust +- env: TARGETS=i386-softmmu,x86_64-softmmu + EXTRA_PKGS=liblttng-ust-dev liburcu-dev + EXTRA_CONFIG=--enable-trace-backend=ust + compiler: gcc -- 1.9.0
[Qemu-devel] [PATCH v1 4/4] .travis.yml: add IRC notifications for build failures
From: Alex Bennée alex.ben...@linaro.org I'm trying to avoid spamming the IRC channel (not overly likely as builds take a while). So failure will always be reported but if the build continues to work then the IRC notifications will be quiet. Note any GitHub based repository with Travis enabled will use this notification. If it proves to be too spammy we may want to ask users not to use Travis themselves although this seems sub-optimal. Signed-off-by: Alex Bennée alex.ben...@linaro.org diff --git a/.travis.yml b/.travis.yml index 0dbf2da..04da973 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,6 +4,12 @@ python: compiler: - gcc - clang +notifications: + irc: +channels: + - irc.oftc.net#qemu +on_success: change +on_failure: always env: global: - TEST_CMD=make check -- 1.9.0
[Qemu-devel] [PATCH v1 3/4] .travis.yml: trivial whitespace fixup
From: Alex Bennée alex.ben...@linaro.org Purely cosmetic but satisfies my OCD. Signed-off-by: Alex Bennée alex.ben...@linaro.org diff --git a/.travis.yml b/.travis.yml index 1d78421..0dbf2da 100644 --- a/.travis.yml +++ b/.travis.yml @@ -14,23 +14,23 @@ env: - GUI_PKGS=libgtk-3-dev libvte-2.90-dev libsdl1.2-dev libpng12-dev libpixman-1-dev - EXTRA_PKGS= matrix: - - TARGETS=alpha-softmmu,alpha-linux-user - - TARGETS=arm-softmmu,arm-linux-user - - TARGETS=aarch64-softmmu,aarch64-linux-user - - TARGETS=cris-softmmu - - TARGETS=i386-softmmu,x86_64-softmmu - - TARGETS=lm32-softmmu - - TARGETS=m68k-softmmu - - TARGETS=microblaze-softmmu,microblazeel-softmmu - - TARGETS=mips-softmmu,mips64-softmmu,mips64el-softmmu,mipsel-softmmu - - TARGETS=moxie-softmmu - - TARGETS=or32-softmmu, - - TARGETS=ppc-softmmu,ppc64-softmmu,ppcemb-softmmu - - TARGETS=s390x-softmmu - - TARGETS=sh4-softmmu,sh4eb-softmmu - - TARGETS=sparc-softmmu,sparc64-softmmu - - TARGETS=unicore32-softmmu - - TARGETS=xtensa-softmmu,xtensaeb-softmmu +- TARGETS=alpha-softmmu,alpha-linux-user +- TARGETS=arm-softmmu,arm-linux-user +- TARGETS=aarch64-softmmu,aarch64-linux-user +- TARGETS=cris-softmmu +- TARGETS=i386-softmmu,x86_64-softmmu +- TARGETS=lm32-softmmu +- TARGETS=m68k-softmmu +- TARGETS=microblaze-softmmu,microblazeel-softmmu +- TARGETS=mips-softmmu,mips64-softmmu,mips64el-softmmu,mipsel-softmmu +- TARGETS=moxie-softmmu +- TARGETS=or32-softmmu, +- TARGETS=ppc-softmmu,ppc64-softmmu,ppcemb-softmmu +- TARGETS=s390x-softmmu +- TARGETS=sh4-softmmu,sh4eb-softmmu +- TARGETS=sparc-softmmu,sparc64-softmmu +- TARGETS=unicore32-softmmu +- TARGETS=xtensa-softmmu,xtensaeb-softmmu before_install: - git submodule update --init --recursive - sudo apt-get update -qq -- 1.9.0
[Qemu-devel] [PATCH v1 0/4] Updates for Travis testing
From: Alex Bennée alex.ben...@linaro.org Hi, I've now enabled Travis testing on the official QEMU GitHub mirror. Of the following patches two expand the testing, one is a cosmetic whitespace fix and the final one enabled IRC notification when the build fails. This is potentially controversial but on balance I think it would be worth while letting #qemu know as soon as master breaks. If lots of people start enabling Travis on there own repos then maybe we would reconsider the notification idea. As it is build failures should automatically email the author of ${HEAD} as well as the owner of the repo. There has been interest expressed in running tests on all PULL requests. One option would be to have some sort of bot (via patchwork?) push PULL request heads to another GitHub mirror (qemu-pull-requests.git?) to trigger builds. Alex Bennée (4): .travis.yml: add a new build target with non-core devlibs .travis.yml: re-enable lttng user space trace test .travis.yml: trivial whitespace fixup .travis.yml: add IRC notifications for build failures .travis.yml | 53 +++-- 1 file changed, 31 insertions(+), 22 deletions(-) Cheers, -- Alex Bennée QEMU/KVM Hacker for Linaro
[Qemu-devel] [PATCH v1 1/4] .travis.yml: add a new build target with non-core devlibs
From: Alex Bennée alex.ben...@linaro.org The current builds don't include all the features which are auto-detected and then disabled when the appropriate test packages don't exist. I've added another target that enables all known additional packages for increased coverage. I didn't add it to the core package list to reduce build time. Signed-off-by: Alex Bennée alex.ben...@linaro.org diff --git a/.travis.yml b/.travis.yml index c7ff4da..286cf62 100644 --- a/.travis.yml +++ b/.travis.yml @@ -46,6 +46,10 @@ matrix: - env: TARGETS=i386-softmmu,x86_64-softmmu EXTRA_CONFIG=--enable-debug --enable-tcg-interpreter compiler: gcc +# All the extra -dev packages +- env: TARGETS=i386-softmmu,x86_64-softmmu + EXTRA_PKGS=libaio-dev libcap-ng-dev libattr1-dev libbrlapi-dev uuid-dev libusb-1.0.0-dev + compiler: gcc # Currently configure doesn't force --disable-pie - env: TARGETS=i386-softmmu,x86_64-softmmu EXTRA_CONFIG=--enable-gprof --enable-gcov --disable-pie -- 1.9.0
[Qemu-devel] [RFC PATCH 0/0] binfmt script patches
Hi, While working on my aarch64 work I found setting up binfmt was more of a pain than it could have been. Specifically: * hard-coded for /usr/local installs * no help * no error checking Tellingly the script doesn't seem to be used by the distros who have rolled their own binfmt_misc stuff around qemu. I also found it hard to figure out why things were not working so I wrote a noddy checker script for interrogating the state of binfmt. I'm currently using the -d mode of this script and am running qemu directly from my source tree (with $HOME bind mounted into my chroot) and it seems to be working well. Any comments? Worth pushing some love to the scripts upstream? Cheers, -- Alex Bennée QEMU/KVM Hacker for Linaro
[Qemu-devel] [PATCH 1/2] scripts/qemu-binfmt-conf.sh: re-factor and clean-up
From: Alex Bennée alex.ben...@linaro.org I was looking to set-up for development but found the script made some hard-coded assumptions. It doesn't seem the script is used by the distros but if it had a little more love maybe it would be ;-) * Add usage() instructions * Move all registering to a single function * Check for existence of executable qemu before registering * Add -d (devel) mode for subscribing in-src tree binaries * error handling when setting binfmt fails * add support for aarch64 --- scripts/qemu-binfmt-conf.sh | 124 +--- 1 file changed, 105 insertions(+), 19 deletions(-) mode change 100644 = 100755 scripts/qemu-binfmt-conf.sh diff --git a/scripts/qemu-binfmt-conf.sh b/scripts/qemu-binfmt-conf.sh old mode 100644 new mode 100755 index 0da2618..8cfb387 --- a/scripts/qemu-binfmt-conf.sh +++ b/scripts/qemu-binfmt-conf.sh @@ -1,5 +1,89 @@ #!/bin/sh -# enable automatic i386/ARM/M68K/MIPS/SPARC/PPC/s390 program execution by the kernel +# Enable automatic i386/ARM/aarch64/M68K/MIPS/SPARC/PPC/s390 +# program execution by the kernel using the binfmt_misc feature +# + +# Base path for finding QEMU binary +BINFMT_DEVEL_MODE= +BINFMT_VERBOSE= +BINFMT_BASE_PATH=/usr/local/bin + +# Print out some simple usage instructions +usage() { +echo Usage: `basename $0` options (-hdp) +echo +This script is used to configure binfmt_misc on a system +to automatically call QEMU when a binary that it can +deal with is detected by the kernel. + +Parameters: +-p PATH - base path to find QEMU binaries + (default: $BINFMT_BASE_PATH) +-d - developer mode, search source tree for + the QEMU binaries. +-v - more verbose output + +exit 1 +} + +# Register an individual binfmt +# +# Before registering the format we check for the +# existence of the binary and if VERBOSE is set we +# specify what exactly has been registered. + +register_binfmt () { +name=$1 +qbin=$2 +binfmt_string=$3 +warning=$4 + +if [ -n ${BINFMT_DEVEL_MODE} ]; then +qemu_check_path=${BINFMT_BASE_PATH}/${qbin}-linux-user/qemu-${qbin} +else +qemu_check_path=${BINFMT_BASE_PATH}/qemu-${qbin} +fi + +if [ -x $qemu_check_path ]; then +bfmt=:$name:M::$binfmt_string:$qemu_check_path: +echo $bfmt /proc/sys/fs/binfmt_misc/register +res=$? +if [ $res != 0 ]; then +echo Error ($res): $bfmt /proc/sys/fs/binfmt_misc/register +else +if [ -n ${BINFMT_VERBOSE} ] ; then +echo registered $qemu_check_path for $name binaries +fi +if [ -n $warning ]; then +echo $warning +fi +fi +fi +} + +while getopts vhdp: opt +do +case $opt in +h) +usage +;; +p) +BINFMT_BASE_PATH=$OPTARG +;; +d) +BINFMT_DEVEL_MODE=1 +script_dir=`dirname $0` +BINFMT_BASE_PATH=`realpath $script_dir/..` +;; +v) +BINFMT_VERBOSE=1 +;; +*) +echo Unknown option. +usage +;; + esac +done # load the binfmt_misc module if [ ! -d /proc/sys/fs/binfmt_misc ]; then @@ -31,39 +115,41 @@ esac # register the interpreter for each cpu except for the native one if [ $cpu != i386 ] ; then -echo ':i386:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x03\x00:\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/local/bin/qemu-i386:' /proc/sys/fs/binfmt_misc/register -echo ':i486:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x06\x00:\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/local/bin/qemu-i386:' /proc/sys/fs/binfmt_misc/register +register_binfmt i386 i386 \x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x03\x00:\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff +register_binfmt i486 i386 \x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x06\x00:\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff fi if [ $cpu != alpha ] ; then -echo ':alpha:M::\x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x26\x90:\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/local/bin/qemu-alpha:' /proc/sys/fs/binfmt_misc/register +register_binfmt alpha alpha \x7fELF\x02\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x26\x90:\xff\xff\xff\xff\xff\xfe\xfe\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff fi if [ $cpu != arm ] ; then -echo ':arm:M::\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x28\x00:\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff:/usr/local/bin/qemu-arm:'
[Qemu-devel] [PATCH 2/2] scripts/qemu-binfmt-check.py: a binfmt checker
From: Alex Bennée alex.ben...@linaro.org This script allows you to check if a given binary will match against any of the currently registered binfmts on the system. --- v2 (ajb): - cleaned up whitespace and checkpatch fixes --- scripts/qemu-binfmt-check.py | 109 +++ 1 file changed, 109 insertions(+) create mode 100755 scripts/qemu-binfmt-check.py diff --git a/scripts/qemu-binfmt-check.py b/scripts/qemu-binfmt-check.py new file mode 100755 index 000..c4309a5 --- /dev/null +++ b/scripts/qemu-binfmt-check.py @@ -0,0 +1,109 @@ +#!/usr/bin/python +# +# binfmt check script +# +# Copyright 2014 Linaro +# +# Authors: +# Alex Bennee alex.ben...@linaro.org +# +# This work is licensed under the terms of the GNU GPL, version 2. See +# the COPYING file in the top-level directory. + +import os +import re +import binascii + +re_int = re.compile(rinterpreter (.+)$) +re_off = re.compile(roffset (\d+)$) +re_magic = re.compile(rmagic ([\dabcdef]+)) +re_mask = re.compile(rmask ([\dabcdef]+)) + +# argparse is only available in Python = 2.7 +from optparse import OptionParser +parser = OptionParser() + +# list of binfmts +binfmts = [] + + +def read_binfmt_spec(f): +bfmt = {} +with open(f) as fd: +content = fd.readlines() +for l in content: +m = re_int.match(l) +if m: +bfmt[interpreter] = m.group(1) +m = re_off.match(l) +if m: +bfmt[offset] = int(m.group(1)) +m = re_magic.match(l) +if m: +bfmt[magic] = binascii.unhexlify(m.group(1)) +m = re_mask.match(l) +if m: +bfmt[mask] = binascii.unhexlify(m.group(1)) +print loaded: %s % bfmt +binfmts.append(bfmt) + + +def load_binfmt_masks(): +binfmt_dir = /proc/sys/fs/binfmt_misc +files = os.listdir(binfmt_dir) +for f in files: +if not f.startswith(status): +fp = %s/%s % (binfmt_dir, f) +if os.access(fp, os.R_OK): +read_binfmt_spec(fp) + + +def check_file_against_binfmt(fmt, f): + +Check if a file will match a given binfmt mask + +print checking %s % (f) +nbytes = len(fmt[magic]) + +fd = open(f, rb) +fd.seek(fmt[offset]) +header = fd.read(nbytes) +magic = fmt[magic] +try: +mask = fmt[mask] +except: +# TODO, make full mask +return + +values = zip(mask, magic, header) +failed = False +pos = 0 +for m, g, h in values: +mask = ord(m) +bits_to_check = ord(h) mask +magic = ord(g) +if not bits_to_check == magic: +print failed at %d (%x, %x, %x) % (pos, mask, magic, bits_to_check) +failed = True +break +pos += 1 +return not failed + + +def check_file_against_all_binfmts(f): + +Check a file against the binfmt masks + +path = os.path.abspath(f) +print file is %s % (path) +for b in binfmts: +if check_file_against_binfmt(b, path): +print %s will use %s % (path, b[interpreter]) +break + + +if __name__ == __main__: +(opts, args) = parser.parse_args() +load_binfmt_masks() +for f in args: +check_file_against_all_binfmts(f) -- 1.8.5.2
[Qemu-devel] [PATCH v6] .travis.yml: basic compile and check recipes
From: Alex Bennée a...@bennee.com This adds a build matrix definition for travis-ci.org continuous integration service. It is usable on any public repository hosted on GitHub. Once you have created an account signed into Travis you can enable it on selected projects via travis-ci.org/profile. Alternatively you can configure the service hooks on GitHub via the repository Settings tab,then Service Hooks and selecting Travis. Once setup Travis will automatically test every push as well as any pull requests submitted to that repository. The build matrix is currently split by target architecture (see TARGETS environment variable) because a full build of QEMU can take some time. This way you get quick feedback for any obvious errors. The additional environment variables exist to allow additional builds to tweak the environment. These are: EXTRA_CONFIG - extra terms passed to configure EXTRA_PKGS - extra dev packages to install TEST_CMD - default make check, can be overridden I've confined the additional stuff to x86/x86_64 for convenience. As Travis supports clang the main builds are done twice (once for gcc and once for clang). However clang is disabled for the debug/trace builds for the purposes of brevity. Other wrinkles: * The lttng user-space tracing back-end is disabled (it is currently horribly broken) * The ftrace back-end doesn't run make check (it requires a mounted debugfs to work) * There are two debug enabled build (with and without TCG interpreter) Signed-off-by: Alex Bennée a...@bennee.com Reviewed-by: Stefan Hajnoczi stefa...@redhat.com --- .travis.yml | 71 + 1 file changed, 71 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 000..6e60d84 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,71 @@ +language: c +python: + - 2.4 +compiler: + - gcc + - clang +env: + global: +- TEST_CMD=make check +- EXTRA_CONFIG= +# Development packages, EXTRA_PKGS saved for additional builds +- CORE_PKGS=libusb-1.0-0-dev libiscsi-dev librados-dev libncurses5-dev +- NET_PKGS=libseccomp-dev libgnutls-dev libssh2-1-dev libspice-server-dev libspice-protocol-dev libnss3-dev +- GUI_PKGS=libgtk-3-dev libvte-2.90-dev libsdl1.2-dev libpng12-dev libpixman-1-dev +- EXTRA_PKGS= + matrix: + - TARGETS=alpha-softmmu,alpha-linux-user + - TARGETS=arm-softmmu,arm-linux-user + - TARGETS=cris-softmmu + - TARGETS=i386-softmmu,x86_64-softmmu + - TARGETS=lm32-softmmu + - TARGETS=m68k-softmmu + - TARGETS=microblaze-softmmu,microblazeel-softmmu + - TARGETS=mips-softmmu,mips64-softmmu,mips64el-softmmu,mipsel-softmmu + - TARGETS=moxie-softmmu + - TARGETS=or32-softmmu, + - TARGETS=ppc-softmmu,ppc64-softmmu,ppcemb-softmmu + - TARGETS=s390x-softmmu + - TARGETS=sh4-softmmu,sh4eb-softmmu + - TARGETS=sparc-softmmu,sparc64-softmmu + - TARGETS=unicore32-softmmu + - TARGETS=xtensa-softmmu,xtensaeb-softmmu +before_install: + - git submodule update --init --recursive + - sudo apt-get update -qq + - sudo apt-get install -qq ${CORE_PKGS} ${NET_PKGS} ${GUI_PKGS} ${EXTRA_PKGS} +script: ./configure --target-list=${TARGETS} ${EXTRA_CONFIG} make ${TEST_CMD} +matrix: + # We manually include a number of additional build for non-standard bits + include: +# Debug related options +- env: TARGETS=i386-softmmu,x86_64-softmmu + EXTRA_CONFIG=--enable-debug + compiler: gcc +- env: TARGETS=i386-softmmu,x86_64-softmmu + EXTRA_CONFIG=--enable-debug --enable-tcg-interpreter + compiler: gcc +# Currently configure doesn't force --disable-pie +- env: TARGETS=i386-softmmu,x86_64-softmmu + EXTRA_CONFIG=--enable-gprof --enable-gcov --disable-pie + compiler: gcc +- env: TARGETS=i386-softmmu,x86_64-softmmu + EXTRA_PKGS=sparse + EXTRA_CONFIG=--enable-sparse + compiler: gcc +# All the trace backends (apart from dtrace) +- env: TARGETS=i386-softmmu,x86_64-softmmu + EXTRA_CONFIG=--enable-trace-backend=stderr + compiler: gcc +- env: TARGETS=i386-softmmu,x86_64-softmmu + EXTRA_CONFIG=--enable-trace-backend=simple + compiler: gcc +- env: TARGETS=i386-softmmu,x86_64-softmmu + EXTRA_CONFIG=--enable-trace-backend=ftrace + TEST_CMD= + compiler: gcc +# This disabled make check for the ftrace backend which needs more setting up +# Currently broken on 12.04 due to mis-packaged liburcu and changed API, will be pulled. +#- env: TARGETS=i386-softmmu,x86_64-softmmu +# EXTRA_PKGS=liblttng-ust-dev liburcu-dev +# EXTRA_CONFIG=--enable-trace-backend=ust -- 1.8.4.2
[Qemu-devel] [PATCH v6] Add .travis.yml metadata for CI
From: Alex Bennée a...@bennee.com Hi, I think this patch is ready to be merged via trivial. While I was testing it last night it caught yet another regression (register_subpage: Assertion, since fixed) so I think it proves it's worth with that alone. Since v5 - Forced the python to 2.4 (our current baseline python) Alex Bennée (1): .travis.yml: basic compile and check recipes .travis.yml | 71 + 1 file changed, 71 insertions(+) create mode 100644 .travis.yml -- 1.8.4.2
[Qemu-devel] [PATCH v4] integrator: fix Linux boot failure by emulating dbg region
From: Alex Bennée a...@bennee.com Commit 9b8c69243 (since reverted) broke the ability to boot the kernel as the value returned by unassigned_mem_read returned non-zero and left the kernel looping forever waiting for it to change (see integrator_led_set in the kernel code). Relying on a varying implementation detail is incorrect anyway so this introduces a basic stub of a memory region for the debug/LED section on the integrator board. Signed-off-by: Alex Bennée a...@bennee.com --- Changes for v4: * Moved hw/arm/integrator_debug.c - hw/misc/arm_integrator_debug.c default-configs/arm-softmmu.mak| 1 + hw/arm/integratorcp.c | 2 + hw/misc/Makefile.objs | 1 + hw/misc/arm_integrator_debug.c | 103 + include/hw/misc/arm_integrator_debug.h | 18 ++ 5 files changed, 125 insertions(+) create mode 100644 hw/misc/arm_integrator_debug.c create mode 100644 include/hw/misc/arm_integrator_debug.h diff --git a/default-configs/arm-softmmu.mak b/default-configs/arm-softmmu.mak index d13bc2b..7e69137 100644 --- a/default-configs/arm-softmmu.mak +++ b/default-configs/arm-softmmu.mak @@ -79,3 +79,4 @@ CONFIG_VERSATILE_PCI=y CONFIG_VERSATILE_I2C=y CONFIG_SDHCI=y +CONFIG_INTEGRATOR_DEBUG=y diff --git a/hw/arm/integratorcp.c b/hw/arm/integratorcp.c index 2ef93ed..c44b2a4 100644 --- a/hw/arm/integratorcp.c +++ b/hw/arm/integratorcp.c @@ -11,6 +11,7 @@ #include hw/devices.h #include hw/boards.h #include hw/arm/arm.h +#include hw/misc/arm_integrator_debug.h #include net/net.h #include exec/address-spaces.h #include sysemu/sysemu.h @@ -508,6 +509,7 @@ static void integratorcp_init(QEMUMachineInitArgs *args) icp_control_init(0xcb00); sysbus_create_simple(pl050_keyboard, 0x1800, pic[3]); sysbus_create_simple(pl050_mouse, 0x1900, pic[4]); +sysbus_create_simple(TYPE_INTEGRATOR_DEBUG, 0x1a00, 0); sysbus_create_varargs(pl181, 0x1c00, pic[23], pic[24], NULL); if (nd_table[0].used) smc91c111_init(nd_table[0], 0xc800, pic[27]); diff --git a/hw/misc/Makefile.objs b/hw/misc/Makefile.objs index 2578e29..cca5c05 100644 --- a/hw/misc/Makefile.objs +++ b/hw/misc/Makefile.objs @@ -10,6 +10,7 @@ obj-$(CONFIG_VMPORT) += vmport.o # ARM devices common-obj-$(CONFIG_PL310) += arm_l2x0.o +common-obj-$(CONFIG_INTEGRATOR_DEBUG) += arm_integrator_debug.o # PKUnity SoC devices common-obj-$(CONFIG_PUV3) += puv3_pm.o diff --git a/hw/misc/arm_integrator_debug.c b/hw/misc/arm_integrator_debug.c new file mode 100644 index 000..f1ebdd4 --- /dev/null +++ b/hw/misc/arm_integrator_debug.c @@ -0,0 +1,103 @@ +/* + * LED, Switch and Debug control registers for ARM Integrator Boards + * + * This is currently a stub for this functionality but at least + * ensures something other than unassigned_mem_read() handles access + * to this area. + * + * The real h/w is described at: + * http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0159b/Babbfijf.html + * + * Copyright (c) 2013 Alex Bennée a...@bennee.com + * + * This work is licensed under the terms of the GNU GPL, version 2 or later. + * See the COPYING file in the top-level directory. + */ + +#include hw/hw.h +#include hw/sysbus.h +#include exec/address-spaces.h +#include hw/misc/arm_integrator_debug.h + +#define INTEGRATOR_DEBUG(obj) \ +OBJECT_CHECK(IntegratorDebugState, (obj), TYPE_INTEGRATOR_DEBUG) + +typedef struct { +SysBusDevice parent_obj; + +MemoryRegion iomem; + +uint32_t alpha; +uint32_t leds; +uint32_t switches; +} IntegratorDebugState; + +static uint64_t intdbg_control_read(void *opaque, hwaddr offset, +unsigned size) +{ +switch (offset 2) { +case 0: /* ALPHA */ +case 1: /* LEDS */ +case 2: /* SWITCHES */ +qemu_log_mask(LOG_UNIMP, + %s: returning zero from % HWADDR_PRIx :%u\n, + __func__, offset, size); +return 0; +default: +qemu_log_mask(LOG_GUEST_ERROR, + %s: Bad offset % HWADDR_PRIx, + __func__, offset); +return 0; +} +} + +static void intdbg_control_write(void *opaque, hwaddr offset, + uint64_t value, unsigned size) +{ +switch (offset 2) { +case 1: /* ALPHA */ +case 2: /* LEDS */ +case 3: /* SWITCHES */ +/* Nothing interesting implemented yet. */ +qemu_log_mask(LOG_UNIMP, + %s: ignoring write of % PRIu64 + to % HWADDR_PRIx :%u\n, + __func__, value, offset, size); +break; +default: +qemu_log_mask(LOG_GUEST_ERROR, + %s: write of % PRIu64 + to bad offset % HWADDR_PRIx \n, + __func__, value, offset); +} +} + +static const MemoryRegionOps intdbg_control_ops = { +.read = intdbg_control_read, +
[Qemu-devel] [PATCH v3 0/1] integrator: fix Linux boot failure
From Alex Bennée alex.ben...@linaro.org # This line is ignored. Hi, I finally got a chance to follow up on the review comments from Peter and Andreas. Changes for v3: * Moved into hw/arm/integrator_debug.c * Expanded QOM symbol to INTEGRATOR_DEBUG, moved to header * Use __func__, HWADDR_PRIx and PRIu64 for debug output * Add copyright statements * Fixed line lengths Cheers, Alex.
[Qemu-devel] [PATCH v3] integrator: fix Linux boot failure by emulating dbg region
From: Alex Bennée a...@bennee.com Commit 9b8c69243 (since reverted) broke the ability to boot the kernel as the value returned by unassigned_mem_read returned non-zero and left the kernel looping forever waiting for it to change (see integrator_led_set in the kernel code). Relying on a varying implementation detail is incorrect anyway so this introduces a basic stub of a memory region for the debug/LED section on the integrator board. Signed-off-by: Alex Bennée a...@bennee.com --- hw/arm/Makefile.objs | 3 +- hw/arm/integrator_debug.c | 103 ++ hw/arm/integratorcp.c | 2 + include/hw/arm/integrator_debug.h | 18 +++ 4 files changed, 125 insertions(+), 1 deletion(-) create mode 100644 hw/arm/integrator_debug.c create mode 100644 include/hw/arm/integrator_debug.h diff --git a/hw/arm/Makefile.objs b/hw/arm/Makefile.objs index 3671b42..ffdf7ee 100644 --- a/hw/arm/Makefile.objs +++ b/hw/arm/Makefile.objs @@ -1,5 +1,6 @@ obj-y += boot.o collie.o exynos4_boards.o gumstix.o highbank.o -obj-y += integratorcp.o kzm.o mainstone.o musicpal.o nseries.o +obj-y += integratorcp.o integrator_debug.o +obj-y += kzm.o mainstone.o musicpal.o nseries.o obj-y += omap_sx1.o palm.o realview.o spitz.o stellaris.o obj-y += tosa.o versatilepb.o vexpress.o xilinx_zynq.o z2.o diff --git a/hw/arm/integrator_debug.c b/hw/arm/integrator_debug.c new file mode 100644 index 000..c9dd7f0 --- /dev/null +++ b/hw/arm/integrator_debug.c @@ -0,0 +1,103 @@ +/* + * LED, Switch and Debug control registers for ARM Integrator Boards + * + * This is currently a stub for this functionality but at least + * ensures something other than unassigned_mem_read() handles access + * to this area. + * + * The real h/w is described at: + * http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0159b/Babbfijf.html + * + * Copyright (c) 2013 Alex Bennée a...@bennee.com + * + * This work is licensed under the terms of the GNU GPL, version 2 or later. + * See the COPYING file in the top-level directory. + */ + +#include hw/hw.h +#include hw/sysbus.h +#include exec/address-spaces.h +#include hw/arm/integrator_debug.h + +#define INTEGRATOR_DEBUG(obj) \ +OBJECT_CHECK(IntegratorDebugState, (obj), TYPE_INTEGRATOR_DEBUG) + +typedef struct { +SysBusDevice parent_obj; + +MemoryRegion iomem; + +uint32_t alpha; +uint32_t leds; +uint32_t switches; +} IntegratorDebugState; + +static uint64_t intdbg_control_read(void *opaque, hwaddr offset, +unsigned size) +{ +switch (offset 2) { +case 0: /* ALPHA */ +case 1: /* LEDS */ +case 2: /* SWITCHES */ +qemu_log_mask(LOG_UNIMP, + %s: returning zero from % HWADDR_PRIx :%u\n, + __func__, offset, size); +return 0; +default: +qemu_log_mask(LOG_GUEST_ERROR, + %s: Bad offset % HWADDR_PRIx, + __func__, offset); +return 0; +} +} + +static void intdbg_control_write(void *opaque, hwaddr offset, + uint64_t value, unsigned size) +{ +switch (offset 2) { +case 1: /* ALPHA */ +case 2: /* LEDS */ +case 3: /* SWITCHES */ +/* Nothing interesting implemented yet. */ +qemu_log_mask(LOG_UNIMP, + %s: ignoring write of % PRIu64 + to % HWADDR_PRIx :%u\n, + __func__, value, offset, size); +break; +default: +qemu_log_mask(LOG_GUEST_ERROR, + %s: write of % PRIu64 + to bad offset % HWADDR_PRIx \n, + __func__, value, offset); +} +} + +static const MemoryRegionOps intdbg_control_ops = { +.read = intdbg_control_read, +.write = intdbg_control_write, +.endianness = DEVICE_NATIVE_ENDIAN, +}; + +static void intdbg_control_init(Object *obj) +{ +SysBusDevice *sd = SYS_BUS_DEVICE(obj); +IntegratorDebugState *s = INTEGRATOR_DEBUG(obj); + +memory_region_init_io(s-iomem, NULL, intdbg_control_ops, + NULL, dbg-leds, 0x100); +sysbus_init_mmio(sd, s-iomem); +} + +static const TypeInfo intdbg_info = { +.name = TYPE_INTEGRATOR_DEBUG, +.parent= TYPE_SYS_BUS_DEVICE, +.instance_size = sizeof(IntegratorDebugState), +.instance_init = intdbg_control_init, +}; + +static void intdbg_register_types(void) +{ +type_register_static(intdbg_info); +} + +type_init(intdbg_register_types) diff --git a/hw/arm/integratorcp.c b/hw/arm/integratorcp.c index 2ef93ed..0b2ac2c 100644 --- a/hw/arm/integratorcp.c +++ b/hw/arm/integratorcp.c @@ -11,6 +11,7 @@ #include hw/devices.h #include hw/boards.h #include hw/arm/arm.h +#include hw/arm/integrator_debug.h #include net/net.h #include exec/address-spaces.h #include sysemu/sysemu.h @@ -508,6 +509,7 @@ static void integratorcp_init(QEMUMachineInitArgs
[Qemu-devel] [PATCH] .travis.yml: basic compile and check recipes
From: Alex Bennée a...@bennee.com This adds a build matrix definition for travis-ci.org continuous integration service. It is usable on any public repository hosted on GitHub. Once you have created an account signed into Travis you can enable it on selected projects via travis-ci.org/profile. Alternatively you can configure the service hooks on GitHub via the repository Settings tab,then Service Hooks and selecting Travis. Once setup Travis will automatically test every push as well as any pull requests submitted to that repository. The build matrix is currently split by target architecture (see TARGETS environment variable) because a full build of QEMU can take some time. This way you get quick feedback for any obvious errors. The additional environment variables exist to allow additional builds to tweak the environment. These are: EXTRA_CONFIG - extra terms passed to configure EXTRA_PKGS - extra dev packages to install TEST_CMD - default make check, can be overridden I've confined the additional stuff to x86/x86_64 for convenience. As Travis supports clang the main builds are done twice (once for gcc and once for clang). However clang is disabled for the debug/trace builds for the purposes of brevity. Other wrinkles: * The lttng user-space tracing back-end is disabled (it is currently horribly broken) * The ftrace back-end doesn't run make check (it requires a mounted debugfs to work) * There are two debug enabled build (with and without TCG interpreter) Signed-off-by: Alex Bennée a...@bennee.com Reviewed-by: Stefan Hajnoczi stefa...@redhat.com --- .travis.yml | 69 + 1 file changed, 69 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 000..15d36b1 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,69 @@ +language: c +compiler: + - gcc + - clang +env: + global: +- TEST_CMD=make check +- EXTRA_CONFIG= +# Development packages, EXTRA_PKGS saved for additional builds +- CORE_PKGS=libusb-1.0-0-dev libiscsi-dev librados-dev libncurses5-dev +- NET_PKGS=libseccomp-dev libgnutls-dev libssh2-1-dev libspice-server-dev libspice-protocol-dev libnss3-dev +- GUI_PKGS=libgtk-3-dev libvte-2.90-dev libsdl1.2-dev libpng12-dev libpixman-1-dev +- EXTRA_PKGS= + matrix: + - TARGETS=alpha-softmmu,alpha-linux-user + - TARGETS=arm-softmmu,arm-linux-user + - TARGETS=cris-softmmu + - TARGETS=i386-softmmu,x86_64-softmmu + - TARGETS=lm32-softmmu + - TARGETS=m68k-softmmu + - TARGETS=microblaze-softmmu,microblazeel-softmmu + - TARGETS=mips-softmmu,mips64-softmmu,mips64el-softmmu,mipsel-softmmu + - TARGETS=moxie-softmmu + - TARGETS=or32-softmmu, + - TARGETS=ppc-softmmu,ppc64-softmmu,ppcemb-softmmu + - TARGETS=s390x-softmmu + - TARGETS=sh4-softmmu,sh4eb-softmmu + - TARGETS=sparc-softmmu,sparc64-softmmu + - TARGETS=unicore32-softmmu + - TARGETS=xtensa-softmmu,xtensaeb-softmmu +before_install: + - git submodule update --init --recursive + - sudo apt-get update -qq + - sudo apt-get install -qq ${CORE_PKGS} ${NET_PKGS} ${GUI_PKGS} ${EXTRA_PKGS} +script: ./configure --target-list=${TARGETS} ${EXTRA_CONFIG} make ${TEST_CMD} +matrix: + # We manually include a number of additional build for non-standard bits + include: +# Debug related options +- env: TARGETS=i386-softmmu,x86_64-softmmu + EXTRA_CONFIG=--enable-debug + compiler: gcc +- env: TARGETS=i386-softmmu,x86_64-softmmu + EXTRA_CONFIG=--enable-debug --enable-tcg-interpreter + compiler: gcc +# Currently configure doesn't force --disable-pie +- env: TARGETS=i386-softmmu,x86_64-softmmu + EXTRA_CONFIG=--enable-gprof --enable-gcov --disable-pie + compiler: gcc +- env: TARGETS=i386-softmmu,x86_64-softmmu + EXTRA_PKGS=sparse + EXTRA_CONFIG=--enable-sparse + compiler: gcc +# All the trace backends (apart from dtrace) +- env: TARGETS=i386-softmmu,x86_64-softmmu + EXTRA_CONFIG=--enable-trace-backend=stderr + compiler: gcc +- env: TARGETS=i386-softmmu,x86_64-softmmu + EXTRA_CONFIG=--enable-trace-backend=simple + compiler: gcc +- env: TARGETS=i386-softmmu,x86_64-softmmu + EXTRA_CONFIG=--enable-trace-backend=ftrace + TEST_CMD= + compiler: gcc +# This disabled make check for the ftrace backend which needs more setting up +# Currently broken on 12.04 due to mis-packaged liburcu and changed API, will be pulled. +#- env: TARGETS=i386-softmmu,x86_64-softmmu +# EXTRA_PKGS=liblttng-ust-dev liburcu-dev +# EXTRA_CONFIG=--enable-trace-backend=ust -- 1.8.4
[Qemu-devel] [PULL v5 0/0] .travis.yml: basic compile and check recipies
Hi Anthony, Here is my first pull request to add a simple .travis.yml profile to the code base. I'm hoping to expand the range of testing once this is merged (the tcg code gen tests are next on my list). However as it stands this already catches build failures and regressions. Since v4: - dropped SeaBIOS patch Cheers, Alex The following changes since commit 1680d485777ecf436d724631ea8722cc0c66990e: Merge remote-tracking branch 'rth/tcg-ldst-6' into staging (2013-10-14 09:59:59 -0700) are available in the git repository at: http://github.com/stsquad/qemu.git travis-ci for you to fetch changes up to 90878d2c083629a4ee99b2d03158838b35e218c3: .travis.yml: basic compile and check recipes (2013-10-15 10:00:10 +0100) Alex Bennée (1): .travis.yml: basic compile and check recipes .travis.yml | 69 + 1 file changed, 69 insertions(+) create mode 100644 .travis.yml
[Qemu-devel] [PATCH 2/2] .gitmodules: use upstream SeaBIOS repo to fix submodule init
From: Alex Bennée a...@bennee.com Currently master is broken as the wanted commit doesn't exist in qemu's mirror of SeaBIOS. --- .gitmodules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitmodules b/.gitmodules index d7e3f3c..d5d5417 100644 --- a/.gitmodules +++ b/.gitmodules @@ -3,7 +3,7 @@ url = git://git.qemu.org/vgabios.git/ [submodule roms/seabios] path = roms/seabios - url = git://git.qemu.org/seabios.git/ + url = git://git.seabios.org/seabios.git [submodule roms/SLOF] path = roms/SLOF url = git://git.qemu.org/SLOF.git -- 1.8.4
[Qemu-devel] [PATCH 1/2] .travis.yml: basic compile and check recipes
From: Alex Bennée a...@bennee.com This adds a build matrix definition for travis-ci.org continuous integration service. It is usable on any public repository hosted on GitHub. Once you have created an account signed into Travis you can enable it on selected projects via travis-ci.org/profile. Alternatively you can configure the service hooks on GitHub via the repository Settings tab,then Service Hooks and selecting Travis. Once setup Travis will automatically test every push as well as any pull requests submitted to that repository. The build matrix is currently split by target architecture (see TARGETS environment variable) because a full build of QEMU can take some time. This way you get quick feedback for any obvious errors. The additional environment variables exist to allow additional builds to tweak the environment. These are: EXTRA_CONFIG - extra terms passed to configure EXTRA_PKGS - extra dev packages to install TEST_CMD - default make check, can be overridden I've confined the additional stuff to x86/x86_64 for convenience. As Travis supports clang the main builds are done twice (once for gcc and once for clang). However clang is disabled for the debug/trace builds for the purposes of brevity. Other wrinkles: * The lttng user-space tracing back-end is disabled (it is currently horribly broken) * The ftrace back-end doesn't run make check (it requires a mounted debugfs to work) * There are two debug enabled build (with and without TCG interpreter) Signed-off-by: Alex Bennée a...@bennee.com Reviewed-by: Stefan Hajnoczi stefa...@redhat.com --- .travis.yml | 69 + 1 file changed, 69 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 000..15d36b1 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,69 @@ +language: c +compiler: + - gcc + - clang +env: + global: +- TEST_CMD=make check +- EXTRA_CONFIG= +# Development packages, EXTRA_PKGS saved for additional builds +- CORE_PKGS=libusb-1.0-0-dev libiscsi-dev librados-dev libncurses5-dev +- NET_PKGS=libseccomp-dev libgnutls-dev libssh2-1-dev libspice-server-dev libspice-protocol-dev libnss3-dev +- GUI_PKGS=libgtk-3-dev libvte-2.90-dev libsdl1.2-dev libpng12-dev libpixman-1-dev +- EXTRA_PKGS= + matrix: + - TARGETS=alpha-softmmu,alpha-linux-user + - TARGETS=arm-softmmu,arm-linux-user + - TARGETS=cris-softmmu + - TARGETS=i386-softmmu,x86_64-softmmu + - TARGETS=lm32-softmmu + - TARGETS=m68k-softmmu + - TARGETS=microblaze-softmmu,microblazeel-softmmu + - TARGETS=mips-softmmu,mips64-softmmu,mips64el-softmmu,mipsel-softmmu + - TARGETS=moxie-softmmu + - TARGETS=or32-softmmu, + - TARGETS=ppc-softmmu,ppc64-softmmu,ppcemb-softmmu + - TARGETS=s390x-softmmu + - TARGETS=sh4-softmmu,sh4eb-softmmu + - TARGETS=sparc-softmmu,sparc64-softmmu + - TARGETS=unicore32-softmmu + - TARGETS=xtensa-softmmu,xtensaeb-softmmu +before_install: + - git submodule update --init --recursive + - sudo apt-get update -qq + - sudo apt-get install -qq ${CORE_PKGS} ${NET_PKGS} ${GUI_PKGS} ${EXTRA_PKGS} +script: ./configure --target-list=${TARGETS} ${EXTRA_CONFIG} make ${TEST_CMD} +matrix: + # We manually include a number of additional build for non-standard bits + include: +# Debug related options +- env: TARGETS=i386-softmmu,x86_64-softmmu + EXTRA_CONFIG=--enable-debug + compiler: gcc +- env: TARGETS=i386-softmmu,x86_64-softmmu + EXTRA_CONFIG=--enable-debug --enable-tcg-interpreter + compiler: gcc +# Currently configure doesn't force --disable-pie +- env: TARGETS=i386-softmmu,x86_64-softmmu + EXTRA_CONFIG=--enable-gprof --enable-gcov --disable-pie + compiler: gcc +- env: TARGETS=i386-softmmu,x86_64-softmmu + EXTRA_PKGS=sparse + EXTRA_CONFIG=--enable-sparse + compiler: gcc +# All the trace backends (apart from dtrace) +- env: TARGETS=i386-softmmu,x86_64-softmmu + EXTRA_CONFIG=--enable-trace-backend=stderr + compiler: gcc +- env: TARGETS=i386-softmmu,x86_64-softmmu + EXTRA_CONFIG=--enable-trace-backend=simple + compiler: gcc +- env: TARGETS=i386-softmmu,x86_64-softmmu + EXTRA_CONFIG=--enable-trace-backend=ftrace + TEST_CMD= + compiler: gcc +# This disabled make check for the ftrace backend which needs more setting up +# Currently broken on 12.04 due to mis-packaged liburcu and changed API, will be pulled. +#- env: TARGETS=i386-softmmu,x86_64-softmmu +# EXTRA_PKGS=liblttng-ust-dev liburcu-dev +# EXTRA_CONFIG=--enable-trace-backend=ust -- 1.8.4
[Qemu-devel] [PATCH v4 0/0] .travis.yml: basic compile and check recipies and minor fixes
Hi, While testing after Peter's review comments Travis detected a regression in the tree due to the updating of SeaBIOS (also found by a bunch of others in the following days) which I take to be a good indication of the usefulness of these tests. v4: - split debug build for with/without TCG interpreter - add simple patch to use SeaBIOS upstream repo - I've left ust commented out, there are patches to remove/replace it pending on the mailing list. Alex Bennée (2): .travis.yml: basic compile and check recipes .gitmodules: use upstream SeaBIOS repo to fix submodule init .gitmodules | 2 +- .travis.yml | 69 + 2 files changed, 70 insertions(+), 1 deletion(-)
[Qemu-devel] [PATCH] .travis.yml: basic compile and check recipes
From: Alex Bennée a...@bennee.com This adds a build matrix definition for travis-ci.org continuous integration service. It is usable on any public repository hosted on GitHub. Once you have created an account signed into Travis you can enable it on selected projects via travis-ci.org/profile. Alternatively you can configure the service hooks on GitHub via the repository Settings tab,then Service Hooks and selecting Travis. Once setup Travis will automatically test every push as well as any pull requests submitted to that repository. The build matrix is currently split by target architecture (see TARGETS environment variable) because a full build of QEMU can take some time. This way you get quick feedback for any obvious errors. The additional environment variables exist to allow additional builds to tweak the environment. These are: EXTRA_CONFIG - extra terms passed to configure EXTRA_PKGS - extra dev packages to install TEST_CMD - default make check, can be overridden I've confined the additional stuff to x86/x86_64 for convenience. As Travis supports clang the main builds are done twice (once for gcc and once for clang). However clang is disabled for the debug/trace builds for the purposes of brevity. Other wrinkles: * The lttng user-space tracing back-end is disabled (it is currently horribly broken) * The ftrace back-end doesn't run make check (it requires a mounted debugfs to work) Signed-off-by: Alex Bennée a...@bennee.com Reviewed-by: Stefan Hajnoczi stefa...@redhat.com --- .travis.yml | 66 + 1 file changed, 66 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 000..89423ad --- /dev/null +++ b/.travis.yml @@ -0,0 +1,66 @@ +language: c +compiler: + - gcc + - clang +env: + global: +- TEST_CMD=make check +- EXTRA_CONFIG= +# Development packages, EXTRA_PKGS saved for additional builds +- CORE_PKGS=libusb-1.0-0-dev libiscsi-dev librados-dev libncurses5-dev +- NET_PKGS=libseccomp-dev libgnutls-dev libssh2-1-dev libspice-server-dev libspice-protocol-dev libnss3-dev +- GUI_PKGS=libgtk-3-dev libvte-2.90-dev libsdl1.2-dev libpng12-dev libpixman-1-dev +- EXTRA_PKGS= + matrix: + - TARGETS=alpha-softmmu,alpha-linux-user + - TARGETS=arm-softmmu,arm-linux-user + - TARGETS=cris-softmmu + - TARGETS=i386-softmmu,x86_64-softmmu + - TARGETS=lm32-softmmu + - TARGETS=m68k-softmmu + - TARGETS=microblaze-softmmu,microblazeel-softmmu + - TARGETS=mips-softmmu,mips64-softmmu,mips64el-softmmu,mipsel-softmmu + - TARGETS=moxie-softmmu + - TARGETS=or32-softmmu, + - TARGETS=ppc-softmmu,ppc64-softmmu,ppcemb-softmmu + - TARGETS=s390x-softmmu + - TARGETS=sh4-softmmu,sh4eb-softmmu + - TARGETS=sparc-softmmu,sparc64-softmmu + - TARGETS=unicore32-softmmu + - TARGETS=xtensa-softmmu,xtensaeb-softmmu +before_install: + - git submodule update --init --recursive + - sudo apt-get update -qq + - sudo apt-get install -qq ${CORE_PKGS} ${NET_PKGS} ${GUI_PKGS} ${EXTRA_PKGS} +script: ./configure --target-list=${TARGETS} ${EXTRA_CONFIG} make ${TEST_CMD} +matrix: + # We manually include a number of additional build for non-standard bits + include: +# Debug related options +- env: TARGETS=i386-softmmu,x86_64-softmmu + EXTRA_CONFIG=--enable-debug --enable-debug-tcg --enable-tcg-interpreter + compiler: gcc +# Currently configure doesn't force --disable-pie +- env: TARGETS=i386-softmmu,x86_64-softmmu + EXTRA_CONFIG=--enable-gprof --enable-gcov --disable-pie + compiler: gcc +- env: TARGETS=i386-softmmu,x86_64-softmmu + EXTRA_PKGS=sparse + EXTRA_CONFIG=--enable-sparse + compiler: gcc +# All the trace backends (apart from dtrace) +- env: TARGETS=i386-softmmu,x86_64-softmmu + EXTRA_CONFIG=--enable-trace-backend=stderr + compiler: gcc +- env: TARGETS=i386-softmmu,x86_64-softmmu + EXTRA_CONFIG=--enable-trace-backend=simple + compiler: gcc +- env: TARGETS=i386-softmmu,x86_64-softmmu + EXTRA_CONFIG=--enable-trace-backend=ftrace + TEST_CMD= + compiler: gcc +# This disabled make check for the ftrace backend which needs more setting up +# Currently broken on 12.04 due to mis-packaged liburcu and changed API, will be pulled. +#- env: TARGETS=i386-softmmu,x86_64-softmmu +# EXTRA_PKGS=liblttng-ust-dev liburcu-dev +# EXTRA_CONFIG=--enable-trace-backend=ust -- 1.8.4
[Qemu-devel] [PATCH v3 0/0] .travis.yml: basic compile and check recipies
Assuming there are no further comments from this submission I shall likely make my next posting a PULL request. v3 - re-based on current origin/master - squashed all .travis commits and re-worded commit - added clang builds - disabled make check for ftrace back-end - fixed broken build due to errant space - added Reviewed-by tag for Stefans review -- Alex Bennée
[Qemu-devel] [PATCH v2 0/0] .travis and minor compile fixes
Hi, I've updated the .travis.yml following feedback from Stefan to greatly increase the number of compiles it does. In the process: * Disabled ust backend (horribly broken) * Found gov/gprof builds don't enforce --disable-pie * Fixed a minor compiler warning when stderr/ftrace back-end enabled I'm sending this before confirming a clean run (which takes around 2 hours on the Travis infrastructure). However you can watch it's progress at: https://travis-ci.org/stsquad/qemu/builds/11694820 Given I found a couple of issues while doing this I think this is useful alongside the existing buildbot efforts. It allows developers to run simple smoke-tests without access to the buildbot infrastructure (but of course needing github/travis access, free for FLOSS projects). I can see further development possibilities in the future, one example would be a tree that auto-generates branches with testing results for each patch series as they come into the mailing list. Alex Bennée (3): .travis.yml: basic compile and check recipes .travis.yml: greatly expand the coverage + more builds block/stream.c: ensure copy always set .travis.yml| 55 +++ block/stream.c | 2 ++ 2 files changed, 57 insertions(+)
[Qemu-devel] [PATCH 1/3] .travis.yml: basic compile and check recipes
From: Alex Bennée a...@bennee.com While QEMU already has various continuous integration set-ups in buildbot and commercial Jenkins setups there is some value in supporting travis-ci as well. It is well integrated into GitHub work flow and will trigger on all branch pushes and pull requests. This makes it easier for an individual to kick off smoke tests on a work-in-progress branch before eventual submission of patches/pull requests upstream. The build matrix is currently split by target architecture because a full build of QEMU can take some time. This way you get quick feedback for any obvious errors. --- .travis.yml | 19 +++ 1 file changed, 19 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 000..69f60c1 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,19 @@ +language: c +env: + - TARGETS=alpha-softmmu,alpha-linux-user + - TARGETS=arm-softmmu,arm-linux-user + - TARGETS=cris-softmmu + - TARGETS=i386-softmmu,x86_64-softmmu + - TARGETS=lm32-softmmu + - TARGETS=m68k-softmmu + - TARGETS=microblaze-softmmu,microblazeel-softmmu + - TARGETS=mips-softmmu,mips64-softmmu,mips64el-softmmu,mipsel-softmmu + - TARGETS=moxie-softmmu + - TARGETS=or32-softmmu, + - TARGETS=ppc-softmmu,ppc64-softmmu,ppcemb-softmmu + - TARGETS=s390x-softmmu + - TARGETS=sh4-softmmu,sh4eb-softmmu + - TARGETS=sparc-softmmu,sparc64-softmmu + - TARGETS=unicore32-softmmu + - TARGETS=xtensa-softmmu,xtensaeb-softmmu +script: ./configure --target-list=${TARGETS} make make check -- 1.8.4
[Qemu-devel] [PATCH 2/3] .travis.yml: greatly expand the coverage + more builds
From: Alex Bennée a...@bennee.com I've made the definitions more modular to allow for greater build control in each part of the matrix. I've confined the additional stuff to x86/x86_64 for convenience. --- .travis.yml | 38 +- 1 file changed, 37 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 69f60c1..f311f84 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,14 @@ language: c env: + global: +- TEST_CMD=make check +- EXTRA_CONFIG= +# Development packages, EXTRA_PKGS saved for additional builds +- CORE_PKGS=libusb-1.0-0-dev libiscsi-dev librados-dev libncurses5-dev +- NET_PKGS=libseccomp-dev libgnutls-dev libssh2-1-dev libspice-server-dev libspice-protocol-dev libnss3-dev +- GUI_PKGS=libgtk-3-dev libvte-2.90-dev libsdl1.2-dev libpng12-dev libpixman-1-dev +- EXTRA_PKGS= + matrix: - TARGETS=alpha-softmmu,alpha-linux-user - TARGETS=arm-softmmu,arm-linux-user - TARGETS=cris-softmmu @@ -16,4 +25,31 @@ env: - TARGETS=sparc-softmmu,sparc64-softmmu - TARGETS=unicore32-softmmu - TARGETS=xtensa-softmmu,xtensaeb-softmmu -script: ./configure --target-list=${TARGETS} make make check +before_install: + - git submodule update --init --recursive + - sudo apt-get update -qq + - sudo apt-get install -qq ${CORE_PKGS} ${NET_PKGS} ${GUI_PKGS} ${EXTRA_PKGS} +script: ./configure --target-list=${TARGETS} ${EXTRA_CONFIG} make ${TEST_CMD} +matrix: + # We manually include a number of additional build for non-standard bits + include: +# Debug related options +- env: TARGETS=i386-softmmu,x86_64-softmmu + EXTRA_CONFIG=--enable-debug--enable-debug-tcg --enable-tcg-interpreter +# Currently configure doesn't force --disable-pie +- env: TARGETS=i386-softmmu,x86_64-softmmu + EXTRA_CONFIG=--enable-gprof --enable-gcov --disable-pie +- env: TARGETS=i386-softmmu,x86_64-softmmu + EXTRA_PKGS=sparse + EXTRA_CONFIG=--enable-sparse +# All the trace backends (apart from dtrace) +- env: TARGETS=i386-softmmu,x86_64-softmmu + EXTRA_CONFIG=--enable-trace-backend=stderr +- env: TARGETS=i386-softmmu,x86_64-softmmu + EXTRA_CONFIG=--enable-trace-backend=simple +- env: TARGETS=i386-softmmu,x86_64-softmmu + EXTRA_CONFIG=--enable-trace-backend=ftrace +# Currently broken on 12.04 due to mis-packaged liburcu and changed API, will be pulled. +#- env: TARGETS=i386-softmmu,x86_64-softmmu +# EXTRA_PKGS=liblttng-ust-dev liburcu-dev +# EXTRA_CONFIG=--enable-trace-backend=ust -- 1.8.4
[Qemu-devel] [PATCH 3/3] block/stream.c: ensure copy always set
From: Alex Bennée a...@bennee.com This only showed up when compiling with --enable-trace-backend=stderr|ftrace at which point the compiler complains with the following: block/stream.c: In function ‘stream_run’: block/stream.c:141:22: error: ‘copy’ may be used uninitialized in this function [-Werror=uninitialized] Not sure exactly why it needs these options but it does seem clear the negative return case should be handled. --- block/stream.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/block/stream.c b/block/stream.c index 078ce4a..3b9c198 100644 --- a/block/stream.c +++ b/block/stream.c @@ -136,6 +136,8 @@ wait: } copy = (ret == 1); +} else { +copy = false; } trace_stream_one_iteration(s, sector_num, n, ret); if (ret = 0 copy) { -- 1.8.4
[Qemu-devel] [PATCH v2 1/1] integrator: fix Linux boot failure by emulating dbg
From: Alex Bennée a...@bennee.com Commit 9b8c69243 broke the ability to boot the kernel as the value returned by unassigned_mem_read returned non-zero and left the kernel looping forever waiting for it to change (see integrator_led_set in the kernel code). Relying on a varying implementation detail is incorrect anyway so this introduces a memory region to emulate the debug/led region on the integrator board. It is currently a basic stub as I have no idea what the behaviour of this region should be so for now it simply returns 0's as the old unassigned_mem_read did. Signed-off-by: Alex Bennée a...@bennee.com --- default-configs/arm-softmmu.mak | 1 + hw/arm/integratorcp.c | 1 + hw/misc/Makefile.objs | 1 + hw/misc/arm_intdbg.c| 90 + 4 files changed, 93 insertions(+) create mode 100644 hw/misc/arm_intdbg.c diff --git a/default-configs/arm-softmmu.mak b/default-configs/arm-softmmu.mak index ac0815d..a5718d1 100644 --- a/default-configs/arm-softmmu.mak +++ b/default-configs/arm-softmmu.mak @@ -80,3 +80,4 @@ CONFIG_VERSATILE_PCI=y CONFIG_VERSATILE_I2C=y CONFIG_SDHCI=y +CONFIG_INTEGRATOR_DBG=y diff --git a/hw/arm/integratorcp.c b/hw/arm/integratorcp.c index 2ef93ed..46dc615 100644 --- a/hw/arm/integratorcp.c +++ b/hw/arm/integratorcp.c @@ -508,6 +508,7 @@ static void integratorcp_init(QEMUMachineInitArgs *args) icp_control_init(0xcb00); sysbus_create_simple(pl050_keyboard, 0x1800, pic[3]); sysbus_create_simple(pl050_mouse, 0x1900, pic[4]); +sysbus_create_simple(integrator_dbg, 0x1a00, 0); sysbus_create_varargs(pl181, 0x1c00, pic[23], pic[24], NULL); if (nd_table[0].used) smc91c111_init(nd_table[0], 0xc800, pic[27]); diff --git a/hw/misc/Makefile.objs b/hw/misc/Makefile.objs index 2578e29..be284f3 100644 --- a/hw/misc/Makefile.objs +++ b/hw/misc/Makefile.objs @@ -10,6 +10,7 @@ obj-$(CONFIG_VMPORT) += vmport.o # ARM devices common-obj-$(CONFIG_PL310) += arm_l2x0.o +common-obj-$(CONFIG_INTEGRATOR_DBG) += arm_intdbg.o # PKUnity SoC devices common-obj-$(CONFIG_PUV3) += puv3_pm.o diff --git a/hw/misc/arm_intdbg.c b/hw/misc/arm_intdbg.c new file mode 100644 index 000..b505d09 --- /dev/null +++ b/hw/misc/arm_intdbg.c @@ -0,0 +1,90 @@ +/* + * LED, Switch and Debug control registers for ARM Integrator Boards + * + * This currently is a stub for this functionality written with + * reference to what the Linux kernel looks at. Previously we relied + * on the behaviour of unassigned_mem_read() in the core. + * + * The real h/w is described at: + * http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0159b/Babbfijf.html + * + * Written by Alex Bennée + * + * This work is licensed under the terms of the GNU GPL, version 2 or later. + * See the COPYING file in the top-level directory. + */ + +#include hw/hw.h +#include hw/sysbus.h +#include exec/address-spaces.h + +#define TYPE_ARM_INTDBG integrator_dbg +#define ARM_INTDBG(obj) \ +OBJECT_CHECK(ARMIntDbgState, (obj), TYPE_ARM_INTDBG) + +typedef struct { +SysBusDevice parent_obj; +MemoryRegion iomem; + +uint32_t alpha; +uint32_t leds; +uint32_t switches; +} ARMIntDbgState; + +static uint64_t dbg_control_read(void *opaque, hwaddr offset, + unsigned size) +{ +switch (offset 2) { +case 0: /* ALPHA */ +case 1: /* LEDS */ +case 2: /* SWITCHES */ +qemu_log_mask(LOG_UNIMP, dbg_control_read: returning zero from %x:%d\n, (int)offset, size); +return 0; +default: +qemu_log_mask(LOG_GUEST_ERROR, dbg_control_read: Bad offset %x\n, (int)offset); +return 0; +} +} + +static void dbg_control_write(void *opaque, hwaddr offset, + uint64_t value, unsigned size) +{ +switch (offset 2) { +case 1: /* ALPHA */ +case 2: /* LEDS */ +case 3: /* SWITCHES */ +/* Nothing interesting implemented yet. */ +qemu_log_mask(LOG_UNIMP, dbg_control_write: ignoring write of %lx to %x:%d\n, value, (int)offset, size); +break; +default: +qemu_log_mask(LOG_GUEST_ERROR, dbg_control_write: write of %lx to bad offset %x\n, value, (int)offset); +} +} + +static const MemoryRegionOps dbg_control_ops = { +.read = dbg_control_read, +.write = dbg_control_write, +.endianness = DEVICE_NATIVE_ENDIAN, +}; + +static void dbg_control_init(Object *obj) +{ +SysBusDevice *sd = SYS_BUS_DEVICE(obj); +ARMIntDbgState *s = ARM_INTDBG(obj); +memory_region_init_io(s-iomem, NULL, dbg_control_ops, NULL, dbgleds, 0x100); +sysbus_init_mmio(sd, s-iomem); +} + +static const TypeInfo arm_intdbg_info = { +.name = TYPE_ARM_INTDBG, +.parent= TYPE_SYS_BUS_DEVICE, +.instance_size = sizeof(ARMIntDbgState), +.instance_init = dbg_control_init, +}; + +static void arm_intdbg_register_types(void) +{ +
[Qemu-devel] [PATCH v2 1/1] integrator: fix Linux boot failure by emulating dbg
From: Alex Bennée a...@bennee.com Commit 9b8c69243 broke the ability to boot the kernel as the value returned by unassigned_mem_read returned non-zero and left the kernel looping forever waiting for it to change (see integrator_led_set in the kernel code). Relying on a varying implementation detail is incorrect anyway so this introduces a memory region to emulate the debug/led region on the integrator board. It is currently a basic stub as I have no idea what the behaviour of this region should be so for now it simply returns 0's as the old unassigned_mem_read did. Signed-off-by: Alex Bennée a...@bennee.com --- default-configs/arm-softmmu.mak | 1 + hw/arm/integratorcp.c | 1 + hw/misc/Makefile.objs | 1 + hw/misc/arm_intdbg.c| 90 + 4 files changed, 93 insertions(+) create mode 100644 hw/misc/arm_intdbg.c diff --git a/default-configs/arm-softmmu.mak b/default-configs/arm-softmmu.mak index ac0815d..a5718d1 100644 --- a/default-configs/arm-softmmu.mak +++ b/default-configs/arm-softmmu.mak @@ -80,3 +80,4 @@ CONFIG_VERSATILE_PCI=y CONFIG_VERSATILE_I2C=y CONFIG_SDHCI=y +CONFIG_INTEGRATOR_DBG=y diff --git a/hw/arm/integratorcp.c b/hw/arm/integratorcp.c index 2ef93ed..46dc615 100644 --- a/hw/arm/integratorcp.c +++ b/hw/arm/integratorcp.c @@ -508,6 +508,7 @@ static void integratorcp_init(QEMUMachineInitArgs *args) icp_control_init(0xcb00); sysbus_create_simple(pl050_keyboard, 0x1800, pic[3]); sysbus_create_simple(pl050_mouse, 0x1900, pic[4]); +sysbus_create_simple(integrator_dbg, 0x1a00, 0); sysbus_create_varargs(pl181, 0x1c00, pic[23], pic[24], NULL); if (nd_table[0].used) smc91c111_init(nd_table[0], 0xc800, pic[27]); diff --git a/hw/misc/Makefile.objs b/hw/misc/Makefile.objs index 2578e29..be284f3 100644 --- a/hw/misc/Makefile.objs +++ b/hw/misc/Makefile.objs @@ -10,6 +10,7 @@ obj-$(CONFIG_VMPORT) += vmport.o # ARM devices common-obj-$(CONFIG_PL310) += arm_l2x0.o +common-obj-$(CONFIG_INTEGRATOR_DBG) += arm_intdbg.o # PKUnity SoC devices common-obj-$(CONFIG_PUV3) += puv3_pm.o diff --git a/hw/misc/arm_intdbg.c b/hw/misc/arm_intdbg.c new file mode 100644 index 000..b505d09 --- /dev/null +++ b/hw/misc/arm_intdbg.c @@ -0,0 +1,90 @@ +/* + * LED, Switch and Debug control registers for ARM Integrator Boards + * + * This currently is a stub for this functionality written with + * reference to what the Linux kernel looks at. Previously we relied + * on the behaviour of unassigned_mem_read() in the core. + * + * The real h/w is described at: + * http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0159b/Babbfijf.html + * + * Written by Alex Bennée + * + * This work is licensed under the terms of the GNU GPL, version 2 or later. + * See the COPYING file in the top-level directory. + */ + +#include hw/hw.h +#include hw/sysbus.h +#include exec/address-spaces.h + +#define TYPE_ARM_INTDBG integrator_dbg +#define ARM_INTDBG(obj) \ +OBJECT_CHECK(ARMIntDbgState, (obj), TYPE_ARM_INTDBG) + +typedef struct { +SysBusDevice parent_obj; +MemoryRegion iomem; + +uint32_t alpha; +uint32_t leds; +uint32_t switches; +} ARMIntDbgState; + +static uint64_t dbg_control_read(void *opaque, hwaddr offset, + unsigned size) +{ +switch (offset 2) { +case 0: /* ALPHA */ +case 1: /* LEDS */ +case 2: /* SWITCHES */ +qemu_log_mask(LOG_UNIMP, dbg_control_read: returning zero from %x:%d\n, (int)offset, size); +return 0; +default: +qemu_log_mask(LOG_GUEST_ERROR, dbg_control_read: Bad offset %x\n, (int)offset); +return 0; +} +} + +static void dbg_control_write(void *opaque, hwaddr offset, + uint64_t value, unsigned size) +{ +switch (offset 2) { +case 1: /* ALPHA */ +case 2: /* LEDS */ +case 3: /* SWITCHES */ +/* Nothing interesting implemented yet. */ +qemu_log_mask(LOG_UNIMP, dbg_control_write: ignoring write of %lx to %x:%d\n, value, (int)offset, size); +break; +default: +qemu_log_mask(LOG_GUEST_ERROR, dbg_control_write: write of %lx to bad offset %x\n, value, (int)offset); +} +} + +static const MemoryRegionOps dbg_control_ops = { +.read = dbg_control_read, +.write = dbg_control_write, +.endianness = DEVICE_NATIVE_ENDIAN, +}; + +static void dbg_control_init(Object *obj) +{ +SysBusDevice *sd = SYS_BUS_DEVICE(obj); +ARMIntDbgState *s = ARM_INTDBG(obj); +memory_region_init_io(s-iomem, NULL, dbg_control_ops, NULL, dbgleds, 0x100); +sysbus_init_mmio(sd, s-iomem); +} + +static const TypeInfo arm_intdbg_info = { +.name = TYPE_ARM_INTDBG, +.parent= TYPE_SYS_BUS_DEVICE, +.instance_size = sizeof(ARMIntDbgState), +.instance_init = dbg_control_init, +}; + +static void arm_intdbg_register_types(void) +{ +
[Qemu-devel] [PATCH v2 0/0] integrator: fix Linux boot failure by emulating dbg
Hi, I mistakenly appended this to the previous patch revision. I'm now sending for further review. Since v1: - Updated with Peter Maydell's review comments. -- Alex Bennée
[Qemu-devel] [PATCH v2 1/1] integrator: fix Linux boot failure by emulating dbg
From: Alex Bennée a...@bennee.com Commit 9b8c69243 broke the ability to boot the kernel as the value returned by unassigned_mem_read returned non-zero and left the kernel looping forever waiting for it to change (see integrator_led_set in the kernel code). Relying on a varying implementation detail is incorrect anyway so this introduces a memory region to emulate the debug/led region on the integrator board. It is currently a basic stub as I have no idea what the behaviour of this region should be so for now it simply returns 0's as the old unassigned_mem_read did. Signed-off-by: Alex Bennée a...@bennee.com --- default-configs/arm-softmmu.mak | 1 + hw/arm/integratorcp.c | 1 + hw/misc/Makefile.objs | 1 + hw/misc/arm_intdbg.c| 90 + 4 files changed, 93 insertions(+) create mode 100644 hw/misc/arm_intdbg.c diff --git a/default-configs/arm-softmmu.mak b/default-configs/arm-softmmu.mak index ac0815d..a5718d1 100644 --- a/default-configs/arm-softmmu.mak +++ b/default-configs/arm-softmmu.mak @@ -80,3 +80,4 @@ CONFIG_VERSATILE_PCI=y CONFIG_VERSATILE_I2C=y CONFIG_SDHCI=y +CONFIG_INTEGRATOR_DBG=y diff --git a/hw/arm/integratorcp.c b/hw/arm/integratorcp.c index 2ef93ed..46dc615 100644 --- a/hw/arm/integratorcp.c +++ b/hw/arm/integratorcp.c @@ -508,6 +508,7 @@ static void integratorcp_init(QEMUMachineInitArgs *args) icp_control_init(0xcb00); sysbus_create_simple(pl050_keyboard, 0x1800, pic[3]); sysbus_create_simple(pl050_mouse, 0x1900, pic[4]); +sysbus_create_simple(integrator_dbg, 0x1a00, 0); sysbus_create_varargs(pl181, 0x1c00, pic[23], pic[24], NULL); if (nd_table[0].used) smc91c111_init(nd_table[0], 0xc800, pic[27]); diff --git a/hw/misc/Makefile.objs b/hw/misc/Makefile.objs index 2578e29..be284f3 100644 --- a/hw/misc/Makefile.objs +++ b/hw/misc/Makefile.objs @@ -10,6 +10,7 @@ obj-$(CONFIG_VMPORT) += vmport.o # ARM devices common-obj-$(CONFIG_PL310) += arm_l2x0.o +common-obj-$(CONFIG_INTEGRATOR_DBG) += arm_intdbg.o # PKUnity SoC devices common-obj-$(CONFIG_PUV3) += puv3_pm.o diff --git a/hw/misc/arm_intdbg.c b/hw/misc/arm_intdbg.c new file mode 100644 index 000..b505d09 --- /dev/null +++ b/hw/misc/arm_intdbg.c @@ -0,0 +1,90 @@ +/* + * LED, Switch and Debug control registers for ARM Integrator Boards + * + * This currently is a stub for this functionality written with + * reference to what the Linux kernel looks at. Previously we relied + * on the behaviour of unassigned_mem_read() in the core. + * + * The real h/w is described at: + * http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0159b/Babbfijf.html + * + * Written by Alex Bennée + * + * This work is licensed under the terms of the GNU GPL, version 2 or later. + * See the COPYING file in the top-level directory. + */ + +#include hw/hw.h +#include hw/sysbus.h +#include exec/address-spaces.h + +#define TYPE_ARM_INTDBG integrator_dbg +#define ARM_INTDBG(obj) \ +OBJECT_CHECK(ARMIntDbgState, (obj), TYPE_ARM_INTDBG) + +typedef struct { +SysBusDevice parent_obj; +MemoryRegion iomem; + +uint32_t alpha; +uint32_t leds; +uint32_t switches; +} ARMIntDbgState; + +static uint64_t dbg_control_read(void *opaque, hwaddr offset, + unsigned size) +{ +switch (offset 2) { +case 0: /* ALPHA */ +case 1: /* LEDS */ +case 2: /* SWITCHES */ +qemu_log_mask(LOG_UNIMP, dbg_control_read: returning zero from %x:%d\n, (int)offset, size); +return 0; +default: +qemu_log_mask(LOG_GUEST_ERROR, dbg_control_read: Bad offset %x\n, (int)offset); +return 0; +} +} + +static void dbg_control_write(void *opaque, hwaddr offset, + uint64_t value, unsigned size) +{ +switch (offset 2) { +case 1: /* ALPHA */ +case 2: /* LEDS */ +case 3: /* SWITCHES */ +/* Nothing interesting implemented yet. */ +qemu_log_mask(LOG_UNIMP, dbg_control_write: ignoring write of %lx to %x:%d\n, value, (int)offset, size); +break; +default: +qemu_log_mask(LOG_GUEST_ERROR, dbg_control_write: write of %lx to bad offset %x\n, value, (int)offset); +} +} + +static const MemoryRegionOps dbg_control_ops = { +.read = dbg_control_read, +.write = dbg_control_write, +.endianness = DEVICE_NATIVE_ENDIAN, +}; + +static void dbg_control_init(Object *obj) +{ +SysBusDevice *sd = SYS_BUS_DEVICE(obj); +ARMIntDbgState *s = ARM_INTDBG(obj); +memory_region_init_io(s-iomem, NULL, dbg_control_ops, NULL, dbgleds, 0x100); +sysbus_init_mmio(sd, s-iomem); +} + +static const TypeInfo arm_intdbg_info = { +.name = TYPE_ARM_INTDBG, +.parent= TYPE_SYS_BUS_DEVICE, +.instance_size = sizeof(ARMIntDbgState), +.instance_init = dbg_control_init, +}; + +static void arm_intdbg_register_types(void) +{ +
[Qemu-devel] [PATCH v2 0/0] integrator: fix Linux boot failure by emulating dbg
Hi, I've applied the review comments from Peter. Alex.
[Qemu-devel] [PATCH] integrator: fix Linux boot failure by emulating dbg
From: Alex Benn??e a...@bennee.com Commit 9b8c69243 broke the ability to boot the kernel as the value returned by unassigned_mem_read returned non-zero and left the kernel looping forever waiting for it to change (see integrator_led_set in the kernel code). Relying on a varying implementation detail is incorrect anyway so this introduces a memory region to emulate the debug/led region on the integrator board. It is currently a basic stub as I have no idea what the behaviour of this region should be so for now it simply returns 0's as the old unassigned_mem_read did. --- hw/arm/integratorcp.c | 2 ++ hw/misc/Makefile.objs | 1 + hw/misc/arm_intdbg.c | 90 +++ 3 files changed, 93 insertions(+) create mode 100644 hw/misc/arm_intdbg.c diff --git a/hw/arm/integratorcp.c b/hw/arm/integratorcp.c index 2ef93ed..e5d07c4 100644 --- a/hw/arm/integratorcp.c +++ b/hw/arm/integratorcp.c @@ -446,6 +446,7 @@ static void icp_control_init(hwaddr base) } + /* Board init. */ static struct arm_boot_info integrator_binfo = { @@ -508,6 +509,7 @@ static void integratorcp_init(QEMUMachineInitArgs *args) icp_control_init(0xcb00); sysbus_create_simple(pl050_keyboard, 0x1800, pic[3]); sysbus_create_simple(pl050_mouse, 0x1900, pic[4]); +sysbus_create_simple(integrator_dbg, 0x1a00, 0); sysbus_create_varargs(pl181, 0x1c00, pic[23], pic[24], NULL); if (nd_table[0].used) smc91c111_init(nd_table[0], 0xc800, pic[27]); diff --git a/hw/misc/Makefile.objs b/hw/misc/Makefile.objs index 2578e29..e2c84a3 100644 --- a/hw/misc/Makefile.objs +++ b/hw/misc/Makefile.objs @@ -22,6 +22,7 @@ obj-$(CONFIG_LINUX) += vfio.o endif obj-$(CONFIG_REALVIEW) += arm_sysctl.o +obj-y += arm_intdbg.o obj-$(CONFIG_A9SCU) += a9scu.o obj-$(CONFIG_NSERIES) += cbus.o obj-$(CONFIG_ECCMEMCTL) += eccmemctl.o diff --git a/hw/misc/arm_intdbg.c b/hw/misc/arm_intdbg.c new file mode 100644 index 000..1f21447 --- /dev/null +++ b/hw/misc/arm_intdbg.c @@ -0,0 +1,90 @@ +/* + * LED, Switch and Debug control registers for ARM Integrator Boards + * + * This currently is a stub for this functionality written with + * reference to what the Linux kernel looks at. Previously we relied + * on the behaviour of unassigned_mem_read() in the core. + * + * Written by Alex Benn??e + * + * This code is licensed under the GPL. + */ + +#include hw/hw.h +#include hw/sysbus.h +#include exec/address-spaces.h + +#define TYPE_ARM_INTDBG integrator_dbg +#define ARM_INTDBG(obj) \ +OBJECT_CHECK(arm_intdbg_state, (obj), TYPE_ARM_INTDBG) + +typedef struct { +SysBusDevice parent_obj; +MemoryRegion iomem; + +uint32_t alpha; +uint32_t leds; +uint32_t switches; +} arm_intdbg_state; + +static uint64_t dbg_control_read(void *opaque, hwaddr offset, + unsigned size) +{ +switch (offset 2) { +case 0: /* ALPHA */ +return 0; +case 1: /* LEDS */ +return 0; +case 2: /* SWITCHES */ +return 0; +default: +hw_error(dbg_control_read: Bad offset %x\n, (int)offset); +return 0; +} +} + +static void dbg_control_write(void *opaque, hwaddr offset, + uint64_t value, unsigned size) +{ +switch (offset 2) { +case 1: /* ALPHA */ +case 2: /* LEDS */ +case 3: /* SWITCHES */ +/* Nothing interesting implemented yet. */ +break; +default: +hw_error(dbg_control_write: Bad offset %x\n, (int)offset); +} +} + +static const MemoryRegionOps dbg_control_ops = { +.read = dbg_control_read, +.write = dbg_control_write, +.endianness = DEVICE_NATIVE_ENDIAN, +}; + +static void dbg_control_init(Object *obj) +{ +SysBusDevice *sd = SYS_BUS_DEVICE(obj); +arm_intdbg_state *s = ARM_INTDBG(obj); +memory_region_init_io(s-iomem, NULL, dbg_control_ops, NULL, dbgleds, 0x1000); +sysbus_init_mmio(sd, s-iomem); +} + +/* + Hardware boilerplate +*/ + +static const TypeInfo arm_intdbg_info = { +.name = TYPE_ARM_INTDBG, +.parent= TYPE_SYS_BUS_DEVICE, +.instance_size = sizeof(arm_intdbg_state), +.instance_init = dbg_control_init, +}; + +static void arm_intdbg_register_types(void) +{ +type_register_static(arm_intdbg_info); +} + +type_init(arm_intdbg_register_types) -- 1.8.4
[Qemu-devel] [PATCH] .travis.yml: basic compile and check recipes
From: Alex Bennée a...@bennee.com While QEMU already has various continuous integration set-ups in buildbot and commercial Jenkins setups there is some value in supporting travis-ci as well. It is well integrated into GitHub work flow and will trigger on all branch pushes and pull requests. This makes it easier for an individual to kick off smoke tests on a work-in-progress branch before eventual submission of patches/pull requests upstream. The build matrix is currently split by target architecture because a full build of QEMU can take some time. This way you get quick feedback for any obvious errors. --- .travis.yml | 19 +++ 1 file changed, 19 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 000..69f60c1 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,19 @@ +language: c +env: + - TARGETS=alpha-softmmu,alpha-linux-user + - TARGETS=arm-softmmu,arm-linux-user + - TARGETS=cris-softmmu + - TARGETS=i386-softmmu,x86_64-softmmu + - TARGETS=lm32-softmmu + - TARGETS=m68k-softmmu + - TARGETS=microblaze-softmmu,microblazeel-softmmu + - TARGETS=mips-softmmu,mips64-softmmu,mips64el-softmmu,mipsel-softmmu + - TARGETS=moxie-softmmu + - TARGETS=or32-softmmu, + - TARGETS=ppc-softmmu,ppc64-softmmu,ppcemb-softmmu + - TARGETS=s390x-softmmu + - TARGETS=sh4-softmmu,sh4eb-softmmu + - TARGETS=sparc-softmmu,sparc64-softmmu + - TARGETS=unicore32-softmmu + - TARGETS=xtensa-softmmu,xtensaeb-softmmu +script: ./configure --target-list=${TARGETS} make make check -- 1.8.4
subscribe
___ linaro-dev mailing list linaro-dev@lists.linaro.org http://lists.linaro.org/mailman/listinfo/linaro-dev
[Bug 1218819] [NEW] libfdt-dev is broken for current LTS release
Public bug reported: Currently attempts to use libfdt-dev will fail as the packaging doesn't include the libfdt_env.h header required by the others. One place this breaks for example is trying to compile the current QEMU using system libraries. This has already been fixed upstream so the fix should be just to import the latest 1.3.0-3 of the device-tree-compiler package. ** Affects: device-tree-compiler (Ubuntu) Importance: Undecided Status: New ** Bug watch added: Debian Bug tracker #706137 http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=706137 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1218819 Title: libfdt-dev is broken for current LTS release To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/device-tree-compiler/+bug/1218819/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1218819] Re: libfdt-dev is broken for current LTS release
This is the upstream bug-report: http://bugs.debian.org/cgi- bin/bugreport.cgi?bug=706137 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1218819 Title: libfdt-dev is broken for current LTS release To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/device-tree-compiler/+bug/1218819/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1218819] Re: libfdt-dev is broken for current LTS release
I can confirm that after hand-building Debian's device-tree- compiler_1.3.0-4 packages and installing them I could successfully build something using libfdt-dev (qemu). -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1218819 Title: libfdt-dev is broken for current LTS release To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/device-tree-compiler/+bug/1218819/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Wireshark-dev] ATM over Ethernet
Hi, We use a fairly simple ATM over Ethernet encapsulation for linking old ATM based circuits with modern Ethernet based hardware. I was able to enable the packet-atm.c to decde these frames very easily (see attached) but I was looking for pointers for the next bit. Currently I can't see a way to specify treating the rest of the frame as multiple frames. Do I need to extend the ATM dissector to call itself if the remaining frame is larger than 53 bytes? Also how is the AAL encoding determined? Should I just register the handlers for the multiple AAL types and let the user decide? -- Alex, homepage: http://www.bennee.com/~alex/ http://www.half-llama.co.uk 0001-Allow-ATMoE-encapsulated-ATM-to-be-decoded-by-ATM-di.patch Description: Binary data ___ Sent via:Wireshark-dev mailing list wireshark-dev@wireshark.org Archives:http://www.wireshark.org/lists/wireshark-dev Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev mailto:wireshark-dev-requ...@wireshark.org?subject=unsubscribe
[Bug 624877] Re: INFO: task dpkg:23317 blocked for more than 120 seconds.
So I have verified that the proposed dpkg no longer hangs. I used the following script to generate heavy load on the system: #!/bin/bash # # Generate IO load echo starting load #dd if=/dev/zero of=zero sleep 1s dd if=/dev/urandom of=urandom sleep 1s dd if=/dev/sda1 of=sda1_backup1 sleep 1s dd if=/dev/sda1 of=sda1_backup2 sleep 1s dd if=/dev/sda1 of=sda1_backup3 sleep 1s dd if=/dev/sda1 of=sda1_backup4 echo All load running sleep 10m echo 10 minutes passed sleep 10m echo Finishing killall dd And then run a couple of apt-get dist-upgrades with some large packages. Although dpkg ran really slowly (due to the load) I was unable to trigger the kernel D state hang. ** Tags removed: verification-needed ** Tags added: verification-done -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/624877 Title: INFO: task dpkg:23317 blocked for more than 120 seconds. To manage notifications about this bug go to: https://bugs.launchpad.net/linux/+bug/624877/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 624877] Re: INFO: task dpkg:23317 blocked for more than 120 seconds.
Thanks to Ted for clearly elucidating the two competing issues. For the time being we can't move from 10.04 (whole OS upgrades tend to be unpopular with customers for point releases). However as the kernel lock is always triggered by dpkg I'm hoping that just fixing dpkg will be enough. I assume if you make the system quiescent enough but shutting down all I/O the kernel will eventually un-wedge itself and allow a sync() based dpkg to complete? Anyway I've tested Michael Jeanson's patch and I can confirm that even under a highly I/O loaded system dpkg now does work it's way (slowly) through a bunch of packages and eventually completes. I'm fairly happy to ship it in our products repositories although of course look forward to upstream finally adopting the fix. Are there any regression tests I can run against dpkg to make sure nothing else is broken? -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/624877 Title: INFO: task dpkg:23317 blocked for more than 120 seconds. To manage notifications about this bug go to: https://bugs.launchpad.net/linux/+bug/624877/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 624877] Re: INFO: task dpkg:23317 blocked for more than 120 seconds.
Surely the fix required is for the kernel? While dpkg might be good at triggering the bug it may not be the only thing that can hang the kernel requiring a hard reset. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/624877 Title: INFO: task dpkg:23317 blocked for more than 120 seconds. To manage notifications about this bug go to: https://bugs.launchpad.net/linux/+bug/624877/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 624877] Re: INFO: task dpkg:23317 blocked for more than 120 seconds.
The behaviour we are seeing is dpkg hangs and never returns. As dpkg is left in the D state and is un-killable the only recourse is to hard reset the box (power-cycle) it. However it might be due to file-system load it can never achieve the file-system sync. I'm currently trying to come up with a reliable reproduction that doesn't involve hosing our customer boxes -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/624877 Title: INFO: task dpkg:23317 blocked for more than 120 seconds. To manage notifications about this bug go to: https://bugs.launchpad.net/linux/+bug/624877/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 624877] Re: INFO: task dpkg:23317 blocked for more than 120 seconds.
I'm confused as to when this fix was released. I can't see any reference to this bug in the changelogs of either dpkg or the linux- image. I'm seeing on customer 10.04LTS machines running the latest packages which makes me think the bug is still there. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/624877 Title: INFO: task dpkg:23317 blocked for more than 120 seconds. To manage notifications about this bug go to: https://bugs.launchpad.net/linux/+bug/624877/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 979758] Re: package fails to configure on failing to find /etc/init.d/nis
I suspect the invoke-rc.d line needs to be wrapped in the -e part of the of the check? The current preinst code looks like: # Manually remove the nis init script, which has to be split into per-daemon # upstart jobs if dpkg --compare-versions $2 lt-nl 3.17-32ubuntu1.1 then # since this isn't stopped on upgrade, we have to stop it now # so we don't leave orphaned processes running invoke-rc.d nis stop if [ -e /etc/init.d/nis ] [ ! -L /etc/init.d/nis ]; then if [ `md5sum \/etc/init.d/nis\ | sed -e \s/ .*//\` != \ `dpkg-query -W -f='${Conffiles}' nis | sed -n -e \' /etc/init.d/nis '{s/ obsolete$//;s/.* //p}\` ] then echo Obsolete conffile /etc/init.d/nis has been modified by you, renaming to .dpkg-bak mv -f /etc/init.d/nis /etc/init.d/nis.dpkg-bak else rm -f /etc/init.d/nis fi fi update-rc.d nis remove fi -- You received this bug notification because you are a member of Ubuntu Server Team, which is subscribed to nis in Ubuntu. https://bugs.launchpad.net/bugs/979758 Title: package fails to configure on failing to find /etc/init.d/nis To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/nis/+bug/979758/+subscriptions -- Ubuntu-server-bugs mailing list Ubuntu-server-bugs@lists.ubuntu.com Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-server-bugs
[Bug 979758] [NEW] package fails to configure on failing to find /etc/init.d/nis
Public bug reported: On upgrading to Precise I find that apt cannot complete due to a --unpack failure running the pre-installation script. dpkg --unpack /var/cache/apt/archives/nis_3.17-32ubuntu4_amd64.deb (Reading database ... 313937 files and directories currently installed.) Preparing to replace nis 3.17-32ubuntu1.2 (using .../nis_3.17-32ubuntu4_amd64.deb) ... invoke-rc.d: unknown initscript, /etc/init.d/nis not found. dpkg: error processing /var/cache/apt/archives/nis_3.17-32ubuntu4_amd64.deb (--unpack): subprocess new pre-installation script returned error exit status 100 ypbind stop/waiting ypbind start/running, process 3261 ypserv stop/pre-start, process 3290 Errors were encountered while processing: /var/cache/apt/archives/nis_3.17-32ubuntu4_amd64.deb Additional info: 11:36 root@sloy/x86_64 [sources.list.d] lsb_release -rd Description:Ubuntu precise (development branch) Release:12.04 11:36 root@sloy/x86_64 [sources.list.d] apt-cache policy nis nis: Installed: 3.17-32ubuntu1.2 Candidate: 3.17-32ubuntu4 Version table: 3.17-32ubuntu4 0 500 http://gb.archive.ubuntu.com/ubuntu/ precise/universe amd64 Packages *** 3.17-32ubuntu1.2 0 100 /var/lib/dpkg/status ** Affects: nis (Ubuntu) Importance: Undecided Status: New -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/979758 Title: package fails to configure on failing to find /etc/init.d/nis To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/nis/+bug/979758/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 979758] Re: package fails to configure on failing to find /etc/init.d/nis
I suspect the invoke-rc.d line needs to be wrapped in the -e part of the of the check? The current preinst code looks like: # Manually remove the nis init script, which has to be split into per-daemon # upstart jobs if dpkg --compare-versions $2 lt-nl 3.17-32ubuntu1.1 then # since this isn't stopped on upgrade, we have to stop it now # so we don't leave orphaned processes running invoke-rc.d nis stop if [ -e /etc/init.d/nis ] [ ! -L /etc/init.d/nis ]; then if [ `md5sum \/etc/init.d/nis\ | sed -e \s/ .*//\` != \ `dpkg-query -W -f='${Conffiles}' nis | sed -n -e \' /etc/init.d/nis '{s/ obsolete$//;s/.* //p}\` ] then echo Obsolete conffile /etc/init.d/nis has been modified by you, renaming to .dpkg-bak mv -f /etc/init.d/nis /etc/init.d/nis.dpkg-bak else rm -f /etc/init.d/nis fi fi update-rc.d nis remove fi -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/979758 Title: package fails to configure on failing to find /etc/init.d/nis To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/nis/+bug/979758/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Desktop-packages] [Bug 930330] Re: gnome-keyring-daemon leaks memory badly
Following a weekend of my work machine idling and doing nothing I can now report gnome-keyring-daemon is taking up 8.7% of my memory: 983M (VIRT) 677M (RES) 8.7% MEM -- You received this bug notification because you are a member of Desktop Packages, which is subscribed to gnome-keyring in Ubuntu. https://bugs.launchpad.net/bugs/930330 Title: gnome-keyring-daemon leaks memory badly Status in “gnome-keyring” package in Ubuntu: New Bug description: There seems to be a persistent leak in gnome-keyring-daemon. Several times I've come into work to find a very sluggish machine swapping applications back in with the daemon consuming 45% of my system memory (according to htop on an 8GB machine). If there is any debugging tips to be offered on how to run the daemon outside of gnome-shell please let me know and I can valgrind it for you. Currently it's taking up a modest 510M of VIRT (238M RES), I expect this to be much more when I come back into the office on Monday. --- ApportVersion: 1.23-0ubuntu4 Architecture: amd64 DistroRelease: Ubuntu 11.10 InstallationMedia: Ubuntu 10.04 LTS Lucid Lynx - Release amd64 (20100429) Package: gnome-keyring 3.2.2-0ubuntu0.1 PackageArchitecture: amd64 ProcEnviron: SHELL=/bin/bash PATH=(custom, user) LANG=en_GB.UTF-8 LANGUAGE=en_GB.UTF-8 LC_CTYPE=en_GB.UTF-8 ProcVersionSignature: Ubuntu 3.0.0-16.28-generic 3.0.17 Tags: oneiric Uname: Linux 3.0.0-16-generic x86_64 UpgradeStatus: Upgraded to oneiric on 2011-11-04 (98 days ago) UserGroups: adm adm admin admin cdrom cdrom dialout dialout libvirtd libvirtd lpadmin lpadmin plugdev plugdev rrdsock rrdsock sambashare sambashare sudo sudo trac To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/gnome-keyring/+bug/930330/+subscriptions -- Mailing list: https://launchpad.net/~desktop-packages Post to : desktop-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~desktop-packages More help : https://help.launchpad.net/ListHelp
[Desktop-packages] [Bug 930330] Re: gnome-keyring-daemon leaks memory badly
Apologies - this package is part of the Gnome 3 PPA. According to #179873 I can't assign this bug to a PPA so I'm unsure what to do. Will contact the PPA manager directly. -- You received this bug notification because you are a member of Desktop Packages, which is subscribed to gnome-keyring in Ubuntu. https://bugs.launchpad.net/bugs/930330 Title: gnome-keyring-daemon leaks memory badly Status in “gnome-keyring” package in Ubuntu: New Bug description: There seems to be a persistent leak in gnome-keyring-daemon. Several times I've come into work to find a very sluggish machine swapping applications back in with the daemon consuming 45% of my system memory (according to htop on an 8GB machine). If there is any debugging tips to be offered on how to run the daemon outside of gnome-shell please let me know and I can valgrind it for you. Currently it's taking up a modest 510M of VIRT (238M RES), I expect this to be much more when I come back into the office on Monday. --- ApportVersion: 1.23-0ubuntu4 Architecture: amd64 DistroRelease: Ubuntu 11.10 InstallationMedia: Ubuntu 10.04 LTS Lucid Lynx - Release amd64 (20100429) Package: gnome-keyring 3.2.2-0ubuntu0.1 PackageArchitecture: amd64 ProcEnviron: SHELL=/bin/bash PATH=(custom, user) LANG=en_GB.UTF-8 LANGUAGE=en_GB.UTF-8 LC_CTYPE=en_GB.UTF-8 ProcVersionSignature: Ubuntu 3.0.0-16.28-generic 3.0.17 Tags: oneiric Uname: Linux 3.0.0-16-generic x86_64 UpgradeStatus: Upgraded to oneiric on 2011-11-04 (98 days ago) UserGroups: adm adm admin admin cdrom cdrom dialout dialout libvirtd libvirtd lpadmin lpadmin plugdev plugdev rrdsock rrdsock sambashare sambashare sudo sudo trac To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/gnome-keyring/+bug/930330/+subscriptions -- Mailing list: https://launchpad.net/~desktop-packages Post to : desktop-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~desktop-packages More help : https://help.launchpad.net/ListHelp
[Bug 930330] Re: gnome-keyring-daemon leaks memory badly
Following a weekend of my work machine idling and doing nothing I can now report gnome-keyring-daemon is taking up 8.7% of my memory: 983M (VIRT) 677M (RES) 8.7% MEM -- You received this bug notification because you are a member of Ubuntu Desktop Bugs, which is subscribed to gnome-keyring in Ubuntu. https://bugs.launchpad.net/bugs/930330 Title: gnome-keyring-daemon leaks memory badly To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/gnome-keyring/+bug/930330/+subscriptions -- desktop-bugs mailing list desktop-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/desktop-bugs
[Bug 930330] Re: gnome-keyring-daemon leaks memory badly
Apologies - this package is part of the Gnome 3 PPA. According to #179873 I can't assign this bug to a PPA so I'm unsure what to do. Will contact the PPA manager directly. -- You received this bug notification because you are a member of Ubuntu Desktop Bugs, which is subscribed to gnome-keyring in Ubuntu. https://bugs.launchpad.net/bugs/930330 Title: gnome-keyring-daemon leaks memory badly To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/gnome-keyring/+bug/930330/+subscriptions -- desktop-bugs mailing list desktop-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/desktop-bugs
[Bug 930330] Re: gnome-keyring-daemon leaks memory badly
Following a weekend of my work machine idling and doing nothing I can now report gnome-keyring-daemon is taking up 8.7% of my memory: 983M (VIRT) 677M (RES) 8.7% MEM -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/930330 Title: gnome-keyring-daemon leaks memory badly To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/gnome-keyring/+bug/930330/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 930330] Re: gnome-keyring-daemon leaks memory badly
Apologies - this package is part of the Gnome 3 PPA. According to #179873 I can't assign this bug to a PPA so I'm unsure what to do. Will contact the PPA manager directly. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/930330 Title: gnome-keyring-daemon leaks memory badly To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/gnome-keyring/+bug/930330/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Desktop-packages] [Bug 930330] [NEW] gnome-keyring-daemon leaks memory badly
Public bug reported: There seems to be a persistent leak in gnome-keyring-daemon. Several times I've come into work to find a very sluggish machine swapping applications back in with the daemon consuming 45% of my system memory (according to htop on an 8GB machine). If there is any debugging tips to be offered on how to run the daemon outside of gnome-shell please let me know and I can valgrind it for you. Currently it's taking up a modest 510M of VIRT (238M RES), I expect this to be much more when I come back into the office on Monday. --- ApportVersion: 1.23-0ubuntu4 Architecture: amd64 DistroRelease: Ubuntu 11.10 InstallationMedia: Ubuntu 10.04 LTS Lucid Lynx - Release amd64 (20100429) Package: gnome-keyring 3.2.2-0ubuntu0.1 PackageArchitecture: amd64 ProcEnviron: SHELL=/bin/bash PATH=(custom, user) LANG=en_GB.UTF-8 LANGUAGE=en_GB.UTF-8 LC_CTYPE=en_GB.UTF-8 ProcVersionSignature: Ubuntu 3.0.0-16.28-generic 3.0.17 Tags: oneiric Uname: Linux 3.0.0-16-generic x86_64 UpgradeStatus: Upgraded to oneiric on 2011-11-04 (98 days ago) UserGroups: adm adm admin admin cdrom cdrom dialout dialout libvirtd libvirtd lpadmin lpadmin plugdev plugdev rrdsock rrdsock sambashare sambashare sudo sudo trac ** Affects: gnome-keyring (Ubuntu) Importance: Undecided Status: New ** Tags: apport-collected oneiric ** Tags added: apport-collected oneiric ** Description changed: There seems to be a persistent leak in gnome-keyring-daemon. Several times I've come into work to find a very sluggish machine swapping applications back in with the daemon consuming 45% of my system memory (according to htop on an 8GB machine). If there is any debugging tips to be offered on how to run the daemon outside of gnome-shell please let me know and I can valgrind it for you. - Currently it's taking up a modest 510M of VIRT (238M RES), I expect this - to be much more when I come back into the office on Monday. + Currently it's taking up a modest 510M of VIRT (238M RES), I expect this to be much more when I come back into the office on Monday. + --- + ApportVersion: 1.23-0ubuntu4 + Architecture: amd64 + DistroRelease: Ubuntu 11.10 + InstallationMedia: Ubuntu 10.04 LTS Lucid Lynx - Release amd64 (20100429) + Package: gnome-keyring 3.2.2-0ubuntu0.1 + PackageArchitecture: amd64 + ProcEnviron: + SHELL=/bin/bash + PATH=(custom, user) + LANG=en_GB.UTF-8 + LANGUAGE=en_GB.UTF-8 + LC_CTYPE=en_GB.UTF-8 + ProcVersionSignature: Ubuntu 3.0.0-16.28-generic 3.0.17 + Tags: oneiric + Uname: Linux 3.0.0-16-generic x86_64 + UpgradeStatus: Upgraded to oneiric on 2011-11-04 (98 days ago) + UserGroups: adm adm admin admin cdrom cdrom dialout dialout libvirtd libvirtd lpadmin lpadmin plugdev plugdev rrdsock rrdsock sambashare sambashare sudo sudo trac -- You received this bug notification because you are a member of Desktop Packages, which is subscribed to gnome-keyring in Ubuntu. https://bugs.launchpad.net/bugs/930330 Title: gnome-keyring-daemon leaks memory badly Status in “gnome-keyring” package in Ubuntu: New Bug description: There seems to be a persistent leak in gnome-keyring-daemon. Several times I've come into work to find a very sluggish machine swapping applications back in with the daemon consuming 45% of my system memory (according to htop on an 8GB machine). If there is any debugging tips to be offered on how to run the daemon outside of gnome-shell please let me know and I can valgrind it for you. Currently it's taking up a modest 510M of VIRT (238M RES), I expect this to be much more when I come back into the office on Monday. --- ApportVersion: 1.23-0ubuntu4 Architecture: amd64 DistroRelease: Ubuntu 11.10 InstallationMedia: Ubuntu 10.04 LTS Lucid Lynx - Release amd64 (20100429) Package: gnome-keyring 3.2.2-0ubuntu0.1 PackageArchitecture: amd64 ProcEnviron: SHELL=/bin/bash PATH=(custom, user) LANG=en_GB.UTF-8 LANGUAGE=en_GB.UTF-8 LC_CTYPE=en_GB.UTF-8 ProcVersionSignature: Ubuntu 3.0.0-16.28-generic 3.0.17 Tags: oneiric Uname: Linux 3.0.0-16-generic x86_64 UpgradeStatus: Upgraded to oneiric on 2011-11-04 (98 days ago) UserGroups: adm adm admin admin cdrom cdrom dialout dialout libvirtd libvirtd lpadmin lpadmin plugdev plugdev rrdsock rrdsock sambashare sambashare sudo sudo trac To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/gnome-keyring/+bug/930330/+subscriptions -- Mailing list: https://launchpad.net/~desktop-packages Post to : desktop-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~desktop-packages More help : https://help.launchpad.net/ListHelp
[Desktop-packages] [Bug 930330] Dependencies.txt
apport information ** Attachment added: Dependencies.txt https://bugs.launchpad.net/bugs/930330/+attachment/2730042/+files/Dependencies.txt -- You received this bug notification because you are a member of Desktop Packages, which is subscribed to gnome-keyring in Ubuntu. https://bugs.launchpad.net/bugs/930330 Title: gnome-keyring-daemon leaks memory badly Status in “gnome-keyring” package in Ubuntu: New Bug description: There seems to be a persistent leak in gnome-keyring-daemon. Several times I've come into work to find a very sluggish machine swapping applications back in with the daemon consuming 45% of my system memory (according to htop on an 8GB machine). If there is any debugging tips to be offered on how to run the daemon outside of gnome-shell please let me know and I can valgrind it for you. Currently it's taking up a modest 510M of VIRT (238M RES), I expect this to be much more when I come back into the office on Monday. --- ApportVersion: 1.23-0ubuntu4 Architecture: amd64 DistroRelease: Ubuntu 11.10 InstallationMedia: Ubuntu 10.04 LTS Lucid Lynx - Release amd64 (20100429) Package: gnome-keyring 3.2.2-0ubuntu0.1 PackageArchitecture: amd64 ProcEnviron: SHELL=/bin/bash PATH=(custom, user) LANG=en_GB.UTF-8 LANGUAGE=en_GB.UTF-8 LC_CTYPE=en_GB.UTF-8 ProcVersionSignature: Ubuntu 3.0.0-16.28-generic 3.0.17 Tags: oneiric Uname: Linux 3.0.0-16-generic x86_64 UpgradeStatus: Upgraded to oneiric on 2011-11-04 (98 days ago) UserGroups: adm adm admin admin cdrom cdrom dialout dialout libvirtd libvirtd lpadmin lpadmin plugdev plugdev rrdsock rrdsock sambashare sambashare sudo sudo trac To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/gnome-keyring/+bug/930330/+subscriptions -- Mailing list: https://launchpad.net/~desktop-packages Post to : desktop-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~desktop-packages More help : https://help.launchpad.net/ListHelp
[Bug 930330] [NEW] gnome-keyring-daemon leaks memory badly
Public bug reported: There seems to be a persistent leak in gnome-keyring-daemon. Several times I've come into work to find a very sluggish machine swapping applications back in with the daemon consuming 45% of my system memory (according to htop on an 8GB machine). If there is any debugging tips to be offered on how to run the daemon outside of gnome-shell please let me know and I can valgrind it for you. Currently it's taking up a modest 510M of VIRT (238M RES), I expect this to be much more when I come back into the office on Monday. --- ApportVersion: 1.23-0ubuntu4 Architecture: amd64 DistroRelease: Ubuntu 11.10 InstallationMedia: Ubuntu 10.04 LTS Lucid Lynx - Release amd64 (20100429) Package: gnome-keyring 3.2.2-0ubuntu0.1 PackageArchitecture: amd64 ProcEnviron: SHELL=/bin/bash PATH=(custom, user) LANG=en_GB.UTF-8 LANGUAGE=en_GB.UTF-8 LC_CTYPE=en_GB.UTF-8 ProcVersionSignature: Ubuntu 3.0.0-16.28-generic 3.0.17 Tags: oneiric Uname: Linux 3.0.0-16-generic x86_64 UpgradeStatus: Upgraded to oneiric on 2011-11-04 (98 days ago) UserGroups: adm adm admin admin cdrom cdrom dialout dialout libvirtd libvirtd lpadmin lpadmin plugdev plugdev rrdsock rrdsock sambashare sambashare sudo sudo trac ** Affects: gnome-keyring (Ubuntu) Importance: Undecided Status: New ** Tags: apport-collected oneiric ** Tags added: apport-collected oneiric ** Description changed: There seems to be a persistent leak in gnome-keyring-daemon. Several times I've come into work to find a very sluggish machine swapping applications back in with the daemon consuming 45% of my system memory (according to htop on an 8GB machine). If there is any debugging tips to be offered on how to run the daemon outside of gnome-shell please let me know and I can valgrind it for you. - Currently it's taking up a modest 510M of VIRT (238M RES), I expect this - to be much more when I come back into the office on Monday. + Currently it's taking up a modest 510M of VIRT (238M RES), I expect this to be much more when I come back into the office on Monday. + --- + ApportVersion: 1.23-0ubuntu4 + Architecture: amd64 + DistroRelease: Ubuntu 11.10 + InstallationMedia: Ubuntu 10.04 LTS Lucid Lynx - Release amd64 (20100429) + Package: gnome-keyring 3.2.2-0ubuntu0.1 + PackageArchitecture: amd64 + ProcEnviron: + SHELL=/bin/bash + PATH=(custom, user) + LANG=en_GB.UTF-8 + LANGUAGE=en_GB.UTF-8 + LC_CTYPE=en_GB.UTF-8 + ProcVersionSignature: Ubuntu 3.0.0-16.28-generic 3.0.17 + Tags: oneiric + Uname: Linux 3.0.0-16-generic x86_64 + UpgradeStatus: Upgraded to oneiric on 2011-11-04 (98 days ago) + UserGroups: adm adm admin admin cdrom cdrom dialout dialout libvirtd libvirtd lpadmin lpadmin plugdev plugdev rrdsock rrdsock sambashare sambashare sudo sudo trac -- You received this bug notification because you are a member of Ubuntu Desktop Bugs, which is subscribed to gnome-keyring in Ubuntu. https://bugs.launchpad.net/bugs/930330 Title: gnome-keyring-daemon leaks memory badly To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/gnome-keyring/+bug/930330/+subscriptions -- desktop-bugs mailing list desktop-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/desktop-bugs
[Bug 930330] Dependencies.txt
apport information ** Attachment added: Dependencies.txt https://bugs.launchpad.net/bugs/930330/+attachment/2730042/+files/Dependencies.txt -- You received this bug notification because you are a member of Ubuntu Desktop Bugs, which is subscribed to gnome-keyring in Ubuntu. https://bugs.launchpad.net/bugs/930330 Title: gnome-keyring-daemon leaks memory badly To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/gnome-keyring/+bug/930330/+subscriptions -- desktop-bugs mailing list desktop-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/desktop-bugs
[Bug 930330] [NEW] gnome-keyring-daemon leaks memory badly
Public bug reported: There seems to be a persistent leak in gnome-keyring-daemon. Several times I've come into work to find a very sluggish machine swapping applications back in with the daemon consuming 45% of my system memory (according to htop on an 8GB machine). If there is any debugging tips to be offered on how to run the daemon outside of gnome-shell please let me know and I can valgrind it for you. Currently it's taking up a modest 510M of VIRT (238M RES), I expect this to be much more when I come back into the office on Monday. --- ApportVersion: 1.23-0ubuntu4 Architecture: amd64 DistroRelease: Ubuntu 11.10 InstallationMedia: Ubuntu 10.04 LTS Lucid Lynx - Release amd64 (20100429) Package: gnome-keyring 3.2.2-0ubuntu0.1 PackageArchitecture: amd64 ProcEnviron: SHELL=/bin/bash PATH=(custom, user) LANG=en_GB.UTF-8 LANGUAGE=en_GB.UTF-8 LC_CTYPE=en_GB.UTF-8 ProcVersionSignature: Ubuntu 3.0.0-16.28-generic 3.0.17 Tags: oneiric Uname: Linux 3.0.0-16-generic x86_64 UpgradeStatus: Upgraded to oneiric on 2011-11-04 (98 days ago) UserGroups: adm adm admin admin cdrom cdrom dialout dialout libvirtd libvirtd lpadmin lpadmin plugdev plugdev rrdsock rrdsock sambashare sambashare sudo sudo trac ** Affects: gnome-keyring (Ubuntu) Importance: Undecided Status: New ** Tags: apport-collected oneiric ** Tags added: apport-collected oneiric ** Description changed: There seems to be a persistent leak in gnome-keyring-daemon. Several times I've come into work to find a very sluggish machine swapping applications back in with the daemon consuming 45% of my system memory (according to htop on an 8GB machine). If there is any debugging tips to be offered on how to run the daemon outside of gnome-shell please let me know and I can valgrind it for you. - Currently it's taking up a modest 510M of VIRT (238M RES), I expect this - to be much more when I come back into the office on Monday. + Currently it's taking up a modest 510M of VIRT (238M RES), I expect this to be much more when I come back into the office on Monday. + --- + ApportVersion: 1.23-0ubuntu4 + Architecture: amd64 + DistroRelease: Ubuntu 11.10 + InstallationMedia: Ubuntu 10.04 LTS Lucid Lynx - Release amd64 (20100429) + Package: gnome-keyring 3.2.2-0ubuntu0.1 + PackageArchitecture: amd64 + ProcEnviron: + SHELL=/bin/bash + PATH=(custom, user) + LANG=en_GB.UTF-8 + LANGUAGE=en_GB.UTF-8 + LC_CTYPE=en_GB.UTF-8 + ProcVersionSignature: Ubuntu 3.0.0-16.28-generic 3.0.17 + Tags: oneiric + Uname: Linux 3.0.0-16-generic x86_64 + UpgradeStatus: Upgraded to oneiric on 2011-11-04 (98 days ago) + UserGroups: adm adm admin admin cdrom cdrom dialout dialout libvirtd libvirtd lpadmin lpadmin plugdev plugdev rrdsock rrdsock sambashare sambashare sudo sudo trac -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/930330 Title: gnome-keyring-daemon leaks memory badly To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/gnome-keyring/+bug/930330/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 930330] Dependencies.txt
apport information ** Attachment added: Dependencies.txt https://bugs.launchpad.net/bugs/930330/+attachment/2730042/+files/Dependencies.txt -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/930330 Title: gnome-keyring-daemon leaks memory badly To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/gnome-keyring/+bug/930330/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 911693] Re: No debug symbols for git
Does that make this an upstream bug for Debian? I've also found another package without debug symbols (libgdk- pixbuf2.0-0), should I raise a bug for that as well? -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/911693 Title: No debug symbols for git To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/git/+bug/911693/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
Re: [rrd-developers] Distro patch to libtool on Debian Wheezy/Ubuntu Oneiric breaks compile of rrdtool (Was: Re: Compile failure due to libwrap on Ubuntu 11.10)
On 5 January 2012 16:52, Kurt Roeckx k...@roeckx.be wrote: On Tue, Dec 20, 2011 at 05:33:51PM +, Alex Bennee wrote: On 20 December 2011 15:46, Tobias Oetiker t...@oetiker.ch wrote: Hi Alex, Yesterday Alex Bennee wrote: On 19 December 2011 17:00, Tobias Oetiker t...@oetiker.ch wrote: Alex, your system seems to be using a different version of libtool ... snip libtool gets created by libtoolize as far as I know ... OK after much bisecting I've narrowed it down to a patch in libtool 2.4 added by Debian in libtool 2.4-1 The result moves the processing of dependancy_libs in libtool which breaks the passing of the flags in the subtle and maddening way discussed. Can you point me to that discussion? Apologies for the delay, I've only just got back into work following the birth of my daughter. GMane has split the discussion but you can see it here: http://thread.gmane.org/gmane.comp.db.rrdtool.devel/4132 http://thread.gmane.org/gmane.comp.db.rrdtool.devel/4155 I've attached the libtool patch for reference. snip The patch prevents reading the dependancy_libs for cases it shouldn't read it, and so avoids unneeded linking to libraries. Well in this case dependancy_libs should have -lwrap in them but it get squashed. However it could be that RRDTool's autoconf magic is incorrect in the way is specifies libwrap: http://oss.oetiker.ch/rrdtool-trac/browser/trunk/program/configure.ac?rev=2247#L105 My guess would be that you expect to be able to save linker flags in dependancy_libs, but I can't think of a good reason why you would want to do that. Isn't this all driven by autotools? The only slight weirdness is rrdcached uses a different .la file (librrd_th): http://oss.oetiker.ch/rrdtool-trac/browser/trunk/program/src/Makefile.am?rev=2247#L116 But I thought the .la files where set up by autotools so should Do The Right Thing (tm). However it's entirely possible the automagic is being set-up wrong. Any advice gratefully received. I'm kinda lost digging through the rabbit hole that is the autogenerated scripts and makefiles which is why I went to the source. -- Alex, homepage: http://www.bennee.com/~alex/ http://www.half-llama.co.uk ___ rrd-developers mailing list rrd-developers@lists.oetiker.ch https://lists.oetiker.ch/cgi-bin/listinfo/rrd-developers
Re: Distro patch to libtool on Debian Wheezy/Ubuntu Oneiric breaks compile of rrdtool (Was: Re: [rrd-developers] Compile failure due to libwrap on Ubuntu 11.10)
On 5 January 2012 16:52, Kurt Roeckx k...@roeckx.be wrote: On Tue, Dec 20, 2011 at 05:33:51PM +, Alex Bennee wrote: On 20 December 2011 15:46, Tobias Oetiker t...@oetiker.ch wrote: Hi Alex, Yesterday Alex Bennee wrote: On 19 December 2011 17:00, Tobias Oetiker t...@oetiker.ch wrote: Alex, your system seems to be using a different version of libtool ... snip libtool gets created by libtoolize as far as I know ... OK after much bisecting I've narrowed it down to a patch in libtool 2.4 added by Debian in libtool 2.4-1 The result moves the processing of dependancy_libs in libtool which breaks the passing of the flags in the subtle and maddening way discussed. Can you point me to that discussion? Apologies for the delay, I've only just got back into work following the birth of my daughter. GMane has split the discussion but you can see it here: http://thread.gmane.org/gmane.comp.db.rrdtool.devel/4132 http://thread.gmane.org/gmane.comp.db.rrdtool.devel/4155 I've attached the libtool patch for reference. snip The patch prevents reading the dependancy_libs for cases it shouldn't read it, and so avoids unneeded linking to libraries. Well in this case dependancy_libs should have -lwrap in them but it get squashed. However it could be that RRDTool's autoconf magic is incorrect in the way is specifies libwrap: http://oss.oetiker.ch/rrdtool-trac/browser/trunk/program/configure.ac?rev=2247#L105 My guess would be that you expect to be able to save linker flags in dependancy_libs, but I can't think of a good reason why you would want to do that. Isn't this all driven by autotools? The only slight weirdness is rrdcached uses a different .la file (librrd_th): http://oss.oetiker.ch/rrdtool-trac/browser/trunk/program/src/Makefile.am?rev=2247#L116 But I thought the .la files where set up by autotools so should Do The Right Thing (tm). However it's entirely possible the automagic is being set-up wrong. Any advice gratefully received. I'm kinda lost digging through the rabbit hole that is the autogenerated scripts and makefiles which is why I went to the source. -- Alex, homepage: http://www.bennee.com/~alex/ http://www.half-llama.co.uk -- Ubuntu-devel-discuss mailing list Ubuntu-devel-discuss@lists.ubuntu.com Modify settings or unsubscribe at: https://lists.ubuntu.com/mailman/listinfo/ubuntu-devel-discuss
[Bug 911693] [NEW] No debug symbols for git
Public bug reported: I'm trying to do some system profiling on a server that's behaving poorly while cloning repositories. To do proper profiling I need the debug symbols but I can find them even with the ddebs.ubuntu.com repo added. root@vsbldhost:/scratch/root# apt-cache search dbg | grep git gtkam-dbg - GTK+ application for digital still cameras (debugging symbols) jigit-dbgsym - debug symbols for package jigit gitg-dbgsym - debug symbols for package gitg digitemp-dbgsym - debug symbols for package digitemp logitech-applet-dbgsym - debug symbols for package logitech-applet flegita-gimp-dbgsym - debug symbols for package flegita-gimp callgit-dbgsym - debug symbols for package callgit engauge-digitizer-dbgsym - debug symbols for package engauge-digitizer qgit-dbgsym - debug symbols for package qgit sigit-dbgsym - debug symbols for package sigit flegita-dbgsym - debug symbols for package flegita digitools-dbgsym - debug symbols for package digitools I'm running Lucid LTS root@vsbldhost:/scratch/root# lsb_release -rd Description:Ubuntu 10.04.3 LTS Release:10.04 root@vsbldhost:/scratch/root# apt-cache policy git-core git-core: Installed: 1:1.7.0.4-1ubuntu0.2 Candidate: 1:1.7.0.4-1ubuntu0.2 Version table: *** 1:1.7.0.4-1ubuntu0.2 0 500 http://gb.archive.ubuntu.com/ubuntu/ lucid-updates/main Packages 500 http://security.ubuntu.com/ubuntu/ lucid-security/main Packages 100 /var/lib/dpkg/status 1:1.7.0.4-1 0 500 http://gb.archive.ubuntu.com/ubuntu/ lucid/main Packages ** Affects: git-core (Ubuntu) Importance: Undecided Status: New ** Tags: debug -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/911693 Title: No debug symbols for git To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/git-core/+bug/911693/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
Re: [rrd-developers] Distro patch to libtool on Debian Wheezy/Ubuntu Oneiric breaks compile of rrdtool (Was: Re: Compile failure due to libwrap on Ubuntu 11.10)
On 20 December 2011 20:08, Tobias Oetiker t...@oetiker.ch wrote: Hi Alex, Today Alex Bennee wrote: snip OK after much bisecting I've narrowed it down to a patch in libtool 2.4 added by Debian in libtool 2.4-1 The result moves the processing of dependancy_libs in libtool which breaks the passing of the flags in the subtle and maddening way discussed. :-) cool ... maybe I am not using the 'standard' way of adding libraries ? will be glad to adapt ... I suspect you are as the build works fine using a vanilla libtool from the git repo. It's the patching done by Debian that regressed the behaviour. What is your normal build system? I've attached the libtool patch for reference. Once I've figured out what it's trying to achieve I'll raise a bug with Debian/Ubuntu to fix their libtool and then we'll finally be able to build a newer rrdtool on Debian. note on the rrdtool webpage there is a daily snapshot of rrdtool including all the configure stuff ... Hmm good point. My Debian packaging was working straight of the git-svn mirror of your upstream. Most packages work from the dist tarball which includes all the configure junk. Having said that I think there is a general move to moving more packaging to track upstream repositories within some sort of version control because it makes it easier for the maintainer to push patches upstream. -- Alex, homepage: http://www.bennee.com/~alex/ http://www.half-llama.co.uk ___ rrd-developers mailing list rrd-developers@lists.oetiker.ch https://lists.oetiker.ch/cgi-bin/listinfo/rrd-developers
[rrd-developers] Distro patch to libtool on Debian Wheezy/Ubuntu Oneiric breaks compile of rrdtool (Was: Re: Compile failure due to libwrap on Ubuntu 11.10)
On 20 December 2011 15:46, Tobias Oetiker t...@oetiker.ch wrote: Hi Alex, Yesterday Alex Bennee wrote: On 19 December 2011 17:00, Tobias Oetiker t...@oetiker.ch wrote: Alex, your system seems to be using a different version of libtool ... so did you run MakeMakefile ? No, isn't that part of the configure/autogen stuff? MakeMakefile calls the auto* tools in a way so that all the right bits get put into place ... libtool gets created by libtoolize as far as I know ... OK after much bisecting I've narrowed it down to a patch in libtool 2.4 added by Debian in libtool 2.4-1 The result moves the processing of dependancy_libs in libtool which breaks the passing of the flags in the subtle and maddening way discussed. I've attached the libtool patch for reference. Once I've figured out what it's trying to achieve I'll raise a bug with Debian/Ubuntu to fix their libtool and then we'll finally be able to build a newer rrdtool on Debian. -- Alex, homepage: http://www.bennee.com/~alex/ http://www.half-llama.co.uk Index: libtool-2.4/libltdl/config/ltmain.m4sh === --- libtool-2.4.orig/libltdl/config/ltmain.m4sh 2011-03-27 21:52:59.0 + +++ libtool-2.4/libltdl/config/ltmain.m4sh 2011-03-27 22:06:06.0 + @@ -5644,19 +5644,19 @@ # It is a libtool convenience library, so add in its objects. func_append convenience $ladir/$objdir/$old_library func_append old_convenience $ladir/$objdir/$old_library + tmp_libs= + for deplib in $dependency_libs; do + deplibs=$deplib $deplibs + if $opt_preserve_dup_deps ; then + case $tmp_libs in + * $deplib *) func_append specialdeplibs $deplib ;; + esac + fi + func_append tmp_libs $deplib + done elif test $linkmode != prog test $linkmode != lib; then func_fatal_error \`$lib' is not a convenience library fi - tmp_libs= - for deplib in $dependency_libs; do - deplibs=$deplib $deplibs - if $opt_preserve_dup_deps ; then - case $tmp_libs in - * $deplib *) func_append specialdeplibs $deplib ;; - esac - fi - func_append tmp_libs $deplib - done continue fi # $pass = conv ___ rrd-developers mailing list rrd-developers@lists.oetiker.ch https://lists.oetiker.ch/cgi-bin/listinfo/rrd-developers
Re: [rrd-developers] Compile failure due to libwrap on Ubuntu 11.10
On 19 December 2011 16:04, Tobias Oetiker t...@oetiker.ch wrote: Today Alex Bennee wrote: In fact without the attached patch I see a failure in eval while running configure: Test Library Functions checking for acos... no checking for acos in -lm... yes checking for round... yes ./configure: eval: line 13465: unexpected EOF while looking for matching `' ./configure: eval: line 13466: syntax error: unexpected end of file The code looks like: eval `./libtool --config | grep pic_flag` CFLAGS=$CFLAGS $pic_flag ok, applied your patch ... what did ./libtool --config | grep pic_flag return on your system? It's in the patch. I get: 16:07 ajb@sloy/x86_64 [rrdtool.git-svn] ./libtool --config | grep pic_flag pic_flag= -fPIC -DPIC archive_cmds=\$CC -shared \$pic_flag \$libobjs \$deplibs \$compiler_flags \${wl}-soname \$wl\$soname -o \$lib \$CC -shared \$pic_flag \$libobjs \$deplibs \$compiler_flags \${wl}-soname \$wl\$soname \${wl}-version-script \${wl}\$output_objdir/\$libname.ver -o \$lib also, what does configure report once it has run through. Config is DONE! With MMAP IO: yes Build rrd_getopt: no Build rrd_graph: yes Static programs: no Perl Modules: perl_piped perl_shared Perl Binary: /usr/bin/perl Perl Version: 5.12.4 Perl Options: PREFIX=/opt/rrdtool-1.4.999 LIB=/opt/rrdtool-1.4.999/lib/perl/5.12.4 Ruby Modules: ruby Ruby Binary: /usr/bin/ruby Ruby Options: sitedir=/opt/rrdtool-1.4.999/lib/ruby Build Lua Bindings: yes Lua Binary: /usr/bin/lua Lua Version: 5.1.4 Lua C-modules dir: /opt/rrdtool-1.4.999/lib/lua/5.1 Build Tcl Bindings: yes Build Python Bindings: yes Build rrdcgi: yes Build librrd MT: yes Use gettext: yes With libDBI: yes With libwrap: yes Libraries: -lxml2 -lglib-2.0 -lcairo -lcairo -lcairo -lm -lwrap -ldbi -ldl -lcairo -lpng12 -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lglib-2.0 On a side note, are you IRC anywhere at the moment? We might get faster back and forth, although you currently have my attention for at least the next 2 hours ;-) -- Alex, homepage: http://www.bennee.com/~alex/ http://www.half-llama.co.uk ___ rrd-developers mailing list rrd-developers@lists.oetiker.ch https://lists.oetiker.ch/cgi-bin/listinfo/rrd-developers
Re: [rrd-developers] Compile failure due to libwrap on Ubuntu 11.10
On 19 December 2011 17:00, Tobias Oetiker t...@oetiker.ch wrote: Alex, your system seems to be using a different version of libtool ... so did you run MakeMakefile ? No, isn't that part of the configure/autogen stuff? Regardless running it now makes no difference. The libtool on this system is: 17:09 ajb@sloy/x86_64 [rrdtool.git-svn] dpkg --status libtool Package: libtool snip Version: 2.4-2ubuntu1 Although obviously the 1.4.3 package (pre-libwrap) stuff builds fine under this setup. I'm a little unclear as to where the libtool script comes from. Is it all driven from autoconf magic in the rrd distribution or also influenced by the system software installed? The resulting libtool script between 1.4.3 and trunk seem quite big despite the relatively few tweaks to configure.ac. Is there anything else that influences how libtool gets built? -- Alex, homepage: http://www.bennee.com/~alex/ http://www.half-llama.co.uk ___ rrd-developers mailing list rrd-developers@lists.oetiker.ch https://lists.oetiker.ch/cgi-bin/listinfo/rrd-developers
Re: [rrd-developers] Compile failure due to libwrap on Ubuntu 11.10
On 12 December 2011 16:52, Tobias Oetiker t...@oetiker.ch wrote: Hi Alex, Today Alex Bennee wrote: On 8 November 2011 09:22, Alex Bennee kernel-hac...@bennee.com wrote: Hi, I've just recently updated to 11.10 and thought I'd get upto date on the trunk. It seems that there is some autotools breakage for libwrap. I get the following compile error: snip rrdcached-rrd_daemon.o: In function `connection_thread_main': /export/csrc/packages/rrdtool/rrdtool.git-svn/src/rrd_daemon.c:2657: undefined reference to `request_init' /export/csrc/packages/rrdtool/rrdtool.git-svn/src/rrd_daemon.c:2658: undefined reference to `sock_host' /export/csrc/packages/rrdtool/rrdtool.git-svn/src/rrd_daemon.c:2659: undefined reference to `hosts_access' /export/csrc/packages/rrdtool/rrdtool.git-svn/src/rrd_daemon.c:2660: undefined reference to `eval_client' /export/csrc/packages/rrdtool/rrdtool.git-svn/src/rrd_daemon.c:2660: undefined reference to `eval_client' collect2: ld returned 1 exit status make[2]: *** [rrdcached] Error 1 make[2]: Leaving directory `/export/csrc/packages/rrdtool/rrdtool.git-svn/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/export/csrc/packages/rrdtool/rrdtool.git-svn' make: *** [all] Error 2 I take it from the radio silence no one else has come across this problem? For now I'll just switch back to the stable branch without the libwrap support. However I suspect this will need fixing when 1.6 is released so things can be packaged appropriately. this looks as if you were missing tcp wrapper headers ... maybe this does not get checked explicitly in configure ... can you try installing them Oh they are installed. It just seems somewhere in the libtool magic it drops the needed link lines. 12:32 root@sloy/x86_64 [~] dpkg --status libwrap0-dev Package: libwrap0-dev Status: install ok installed Is there a plan for a release of 1.6 at some point? yes certainly ... it's just that the plan has no date yet :-) cheers tobi -- Tobi Oetiker, OETIKER+PARTNER AG, Aarweg 15 CH-4600 Olten, Switzerland http://it.oetiker.ch t...@oetiker.ch ++41 62 775 9902 / sb: -9900 -- Alex, homepage: http://www.bennee.com/~alex/ http://www.half-llama.co.uk ___ rrd-developers mailing list rrd-developers@lists.oetiker.ch https://lists.oetiker.ch/cgi-bin/listinfo/rrd-developers
Re: [rrd-developers] Compile failure due to libwrap on Ubuntu 11.10
On 16 December 2011 13:26, Tobias Oetiker t...@oetiker.ch wrote: Hi Alex, ah ... I found something ... try changeing include tcpd.h into include tcpd.h in the configure script and run it again. I'm afraid not: make V=1 ... make[2]: Entering directory `/export/csrc/packages/rrdtool/rrdtool.git-svn/src' /bin/sh ../libtool --tag=CC --mode=link gcc -g -O2 -D_GNU_SOURCE -fno-strict-aliasing -Wall -std=gnu99 -pedantic -Wundef -Wshadow -Wpointer-arith -Wcast-align -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline -Wold-style-definition -W -fPIC -DPIC -g -O2 -D_GNU_SOURCE -fno-strict-aliasing -Wall -std=gnu99 -pedantic -Wundef -Wshadow -Wpointer-arith -Wcast-align -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline -Wold-style-definition -W -fPIC -DPIC -o rrdcached rrdcached-rrd_daemon.o librrd_th.la libtool: link: gcc -g -O2 -D_GNU_SOURCE -fno-strict-aliasing -Wall -std=gnu99 -pedantic -Wundef -Wshadow -Wpointer-arith -Wcast-align -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline -Wold-style-definition -W -fPIC -DPIC -g -O2 -D_GNU_SOURCE -fno-strict-aliasing -Wall -std=gnu99 -pedantic -Wundef -Wshadow -Wpointer-arith -Wcast-align -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline -Wold-style-definition -W -fPIC -DPIC -o .libs/rrdcached rrdcached-rrd_daemon.o ./.libs/librrd_th.so -pthread -Wl,-rpath -Wl,/opt/rrdtool-1.6.0/lib rrdcached-rrd_daemon.o: In function `connection_thread_main': /export/csrc/packages/rrdtool/rrdtool.git-svn/src/rrd_daemon.c:2657: undefined reference to `request_init' /export/csrc/packages/rrdtool/rrdtool.git-svn/src/rrd_daemon.c:2658: undefined reference to `sock_host' /export/csrc/packages/rrdtool/rrdtool.git-svn/src/rrd_daemon.c:2659: undefined reference to `hosts_access' /export/csrc/packages/rrdtool/rrdtool.git-svn/src/rrd_daemon.c:2660: undefined reference to `eval_client' /export/csrc/packages/rrdtool/rrdtool.git-svn/src/rrd_daemon.c:2660: undefined reference to `eval_client' collect2: ld returned 1 exit status make[2]: *** [rrdcached] Error 1 make[2]: Leaving directory `/export/csrc/packages/rrdtool/rrdtool.git-svn/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/export/csrc/packages/rrdtool/rrdtool.git-svn' make: *** [all] Error 2 What is odd is the link flags are there in the .la file: grep wrap src/librrd_th.la dependency_libs=' -lpthread /usr/lib/libxml2.la -lm -lwrap /usr/lib/libdbi.la -ldl -lpng12 -lpangocairo-1.0 -lpango-1.0 /usr/lib/x86_64-linux-gnu/libcairo.la -lgobject-2.0 -lglib-2.0' But somehow the libtool script drops them. Unfortunately it's a mess of bash which is hard to follow. -- Alex, homepage: http://www.bennee.com/~alex/ http://www.half-llama.co.uk ___ rrd-developers mailing list rrd-developers@lists.oetiker.ch https://lists.oetiker.ch/cgi-bin/listinfo/rrd-developers
Re: [rrd-developers] Compile failure due to libwrap on Ubuntu 11.10
On 8 November 2011 09:22, Alex Bennee kernel-hac...@bennee.com wrote: Hi, I've just recently updated to 11.10 and thought I'd get upto date on the trunk. It seems that there is some autotools breakage for libwrap. I get the following compile error: snip rrdcached-rrd_daemon.o: In function `connection_thread_main': /export/csrc/packages/rrdtool/rrdtool.git-svn/src/rrd_daemon.c:2657: undefined reference to `request_init' /export/csrc/packages/rrdtool/rrdtool.git-svn/src/rrd_daemon.c:2658: undefined reference to `sock_host' /export/csrc/packages/rrdtool/rrdtool.git-svn/src/rrd_daemon.c:2659: undefined reference to `hosts_access' /export/csrc/packages/rrdtool/rrdtool.git-svn/src/rrd_daemon.c:2660: undefined reference to `eval_client' /export/csrc/packages/rrdtool/rrdtool.git-svn/src/rrd_daemon.c:2660: undefined reference to `eval_client' collect2: ld returned 1 exit status make[2]: *** [rrdcached] Error 1 make[2]: Leaving directory `/export/csrc/packages/rrdtool/rrdtool.git-svn/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/export/csrc/packages/rrdtool/rrdtool.git-svn' make: *** [all] Error 2 I take it from the radio silence no one else has come across this problem? For now I'll just switch back to the stable branch without the libwrap support. However I suspect this will need fixing when 1.6 is released so things can be packaged appropriately. Is there a plan for a release of 1.6 at some point? -- Alex, homepage: http://www.bennee.com/~alex/ http://www.half-llama.co.uk ___ rrd-developers mailing list rrd-developers@lists.oetiker.ch https://lists.oetiker.ch/cgi-bin/listinfo/rrd-developers
[Bug 890167] [NEW] Moonlight not available for Oneiric Ocelot
Public bug reported: Unfortunately I need Moonlight installed to use an internal intranet site. After following link on the 'net I found a suggestion it should be apt-get 'able. However according to the package page: http://packages.ubuntu.com/source/natty/moon there is no version built for Oneirc. Ubuntu Updates seems to think that it was but got deleted (http://www.ubuntuupdates.org/packages/show/345225). I've done a bit of searching but couldn't find any announcement of Moonlight being dropped from the repos which leaves the current state of Moonlight in Ubuntu as confusing at best. It should either be clearly documented as no longer supported or there should be packages for Oneiric. ** Affects: moon (Ubuntu) Importance: Undecided Status: New ** Tags: documentation missing -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/890167 Title: Moonlight not available for Oneiric Ocelot To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/moon/+bug/890167/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[rrd-developers] Compile failure due to libwrap on Ubuntu 11.10
Hi, I've just recently updated to 11.10 and thought I'd get upto date on the trunk. It seems that there is some autotools breakage for libwrap. I get the following compile error: /bin/sh ../libtool --tag=CC --mode=link gcc -g -O2 -D_GNU_SOURCE -fno-strict-aliasing -Wall -std=gnu99 -pedantic -Wundef -Wshadow -Wpointer-arith -Wcast-align -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline -Wold-style-definition -W -fPIC -DPIC -g -O2 -D_GNU_SOURCE -fno-strict-aliasing -Wall -std=gnu99 -pedantic -Wundef -Wshadow -Wpointer-arith -Wcast-align -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline -Wold-style-definition -W -fPIC -DPIC -o rrdcached rrdcached-rrd_daemon.o librrd_th.la libtool: link: gcc -g -O2 -D_GNU_SOURCE -fno-strict-aliasing -Wall -std=gnu99 -pedantic -Wundef -Wshadow -Wpointer-arith -Wcast-align -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline -Wold-style-definition -W -fPIC -DPIC -g -O2 -D_GNU_SOURCE -fno-strict-aliasing -Wall -std=gnu99 -pedantic -Wundef -Wshadow -Wpointer-arith -Wcast-align -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline -Wold-style-definition -W -fPIC -DPIC -o .libs/rrdcached rrdcached-rrd_daemon.o ./.libs/librrd_th.so -pthread -Wl,-rpath -Wl,/opt/rrdtool-1.4.3/lib rrdcached-rrd_daemon.o: In function `connection_thread_main': /export/csrc/packages/rrdtool/rrdtool.git-svn/src/rrd_daemon.c:2657: undefined reference to `request_init' /export/csrc/packages/rrdtool/rrdtool.git-svn/src/rrd_daemon.c:2658: undefined reference to `sock_host' /export/csrc/packages/rrdtool/rrdtool.git-svn/src/rrd_daemon.c:2659: undefined reference to `hosts_access' /export/csrc/packages/rrdtool/rrdtool.git-svn/src/rrd_daemon.c:2660: undefined reference to `eval_client' /export/csrc/packages/rrdtool/rrdtool.git-svn/src/rrd_daemon.c:2660: undefined reference to `eval_client' collect2: ld returned 1 exit status make[2]: *** [rrdcached] Error 1 make[2]: Leaving directory `/export/csrc/packages/rrdtool/rrdtool.git-svn/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/export/csrc/packages/rrdtool/rrdtool.git-svn' make: *** [all] Error 2 Manually adding -lwrap to gcc fixes the problem. The autoconf magic is detecting libwrap but I'm unsure how to ensure the link magic is suitably set. The .la files contain references to it: $ grep wrap src/librrd_th.la dependency_libs=' -lpthread /usr/lib/libxml2.la -lwrap /usr/lib/libdbi.la -lm -ldl -lpng12 /usr/lib/x86_64-linux-gnu/libpangocairo-1.0.la /usr/lib/x86_64-linux-gnu/libpango-1.0.la /usr/lib/x86_64-linux-gnu/libcairo.la -lgobject-2.0 -lgmodule-2.0 -lrt -lglib-2.0' Can anyone with more knowledge of automagic point me in the right direction? -- Alex, homepage: http://www.bennee.com/~alex/ http://www.half-llama.co.uk ___ rrd-developers mailing list rrd-developers@lists.oetiker.ch https://lists.oetiker.ch/cgi-bin/listinfo/rrd-developers
[Bug 882941] Re: Debmirror ignores '--method' option (always uses rsync)
I can confirm this happens. A strace very clearly shows it ignoring me: 29077 execve(/usr/bin/debmirror, [debmirror, --host, sloy, --method=http, -r, apt, --dist=repo, --arch=amd64,source, --section=main, VNMS_2.1.32-0], [/* 83 vars */]) = 0 29078 execve(/bin/sh, [sh, -c, patch --version 2/dev/null /de...], [/* 83 vars */]) = 0 29079 execve(/usr/bin/patch, [patch, --version], [/* 81 vars */]) = 0 29078 --- SIGCHLD (Child exited) @ 0 (0) --- 29077 --- SIGCHLD (Child exited) @ 0 (0) --- 29080 execve(/bin/sh, [sh, -c, ed --version 2/dev/null /dev/n...], [/* 83 vars */]) = 0 29081 execve(/bin/ed, [ed, --version], [/* 81 vars */]) = 0 29080 --- SIGCHLD (Child exited) @ 0 (0) --- 29077 --- SIGCHLD (Child exited) @ 0 (0) --- 29082 execve(/bin/pwd, [/bin/pwd], [/* 83 vars */]) = 0 29077 --- SIGCHLD (Child exited) @ 0 (0) --- 29083 execve(/bin/sh, [sh, -c, hostname -f 2/dev/null || hostn...], [/* 83 vars */]) = 0 29084 execve(/bin/hostname, [hostname, -f], [/* 81 vars */]) = 0 29083 --- SIGCHLD (Child exited) @ 0 (0) --- 29077 --- SIGCHLD (Child exited) @ 0 (0) --- 29085 execve(/bin/sh, [sh, -c, rsync --timeout=300 -aL --partia...], [/* 83 vars */]) = 0 29085 execve(/usr/bin/rsync, [rsync, --timeout=300, -aL, --partial, --no-motd, sloy::apt/, --delete, --include-from=/tmp/hAhNFwYq2H, --exclude=*, /media/DaK/VNMS_UPGRADES/VNMS_2], [/* 81 vars */]) = 0 29077 --- SIGCHLD (Child exited) @ 0 (0) --- -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/882941 Title: Debmirror ignores '--method' option (always uses rsync) To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/debmirror/+bug/882941/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 882941] Re: Debmirror ignores '--method' option (always uses rsync)
This looks like it's an upstream change. From the man-page: --rsync-extra=foo[,bar,..] Allows to also mirror files from a number of directories that are not part of the package archive itself. Debmirror will always use rsync for the transfer of these files, irrespective of what transfer method is specified in the --method option. This will therefore not work if your remote mirror does not support rsync, or if the mirror needs a different --root option for rsync than for the main transfer method specified with --method. However specifying --rsync-extra=none still fails on my setup with: Download of dists/repo/Release failed: 500 Can't connect to sloy:80 (Connection refused) Although looking at apache's logs I can see it never actually tried to fetch the file. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/882941 Title: Debmirror ignores '--method' option (always uses rsync) To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/debmirror/+bug/882941/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
Re: Problems with missing screen updates on recent version
On 20 May 2011 17:15, Marc Lehmann schm...@schmorp.de wrote: On Fri, May 20, 2011 at 05:11:59PM +0100, Alex Bennee kernel-hac...@bennee.com wrote: Yep, all my machines are Intel graphics so that would be a common factor. I don't suppose you have a bug reference for that? How come it hits urxvt so badly when I don't see obvious corruption elsewhere? Nobody knows for sure, but urxvt tries very hard to avoid roundtrips (compare starting xterm and urxvt over a slow remote connection to see why :), so when x-servers forget to lock properly they might initiate e.g. some copying while the previous draw operation is still in progress, as urxvt tries hard to queue as many operations as possible. I've updated the xorg-intel drivers on my Gentoo box at home to the latest 2.15.0 drivers and have seen a substantial improvement to urvt rendering on that machine. -- Alex, homepage: http://www.bennee.com/~alex/ http://www.half-llama.co.uk ___ rxvt-unicode mailing list rxvt-unicode@lists.schmorp.de http://lists.schmorp.de/cgi-bin/mailman/listinfo/rxvt-unicode
[Gwibber-bugs] [Bug 546877] Re: Gwibber not showing any tweets even after refreshing
I have this problem as well with Gwibber 3.1.0 (via PPA) on Lucid. There is some guff on start-up: 10:31 ajb@sloy/x86_64 [~] gwibber -o -d ERROR:dbus.proxies:Introspect error on com.Gwibber.Streams:/com/gwibber/Streams: dbus.exceptions.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name com.Gwibber.Streams was not provided by any .service files ERROR:dbus.proxies:Introspect error on com.Gwibber.Accounts:/com/gwibber/Accounts: dbus.exceptions.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name com.Gwibber.Accounts was not provided by any .service files ERROR:dbus.proxies:Introspect error on com.Gwibber.Searches:/com/gwibber/Searches: dbus.exceptions.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name com.Gwibber.Searches was not provided by any .service files /usr/lib/python2.6/dist-packages/gwibber/gwui.py:753: GtkWarning: gtk_range_set_range: assertion `min max' failed self.scrollbar.set_range(0, len(self.messages) - 1) ERROR:dbus.proxies:Introspect error on com.Gwibber.Connection:/com/gwibber/Connection: dbus.exceptions.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name com.Gwibber.Connection was not provided by any .service files ERROR:dbus.proxies:Introspect error on com.Gwibber.Messages:/com/gwibber/Messages: dbus.exceptions.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name com.Gwibber.Messages was not provided by any .service files /usr/bin/gwibber:99: GtkWarning: gtk_container_add: assertion `GTK_IS_CONTAINER (container)' failed gtk.main() But nothing shows after the Ctrl-r. In my case the individual Facebook feed is showing but nothing for twitter, identica or Buzz. The combined Home pane only shows Facebook status updates. Posting seems unaffected though. ** Changed in: gwibber Status: Invalid = Confirmed -- You received this bug notification because you are a member of Gwibber Bug Heros, which is subscribed to Gwibber. https://bugs.launchpad.net/bugs/546877 Title: Gwibber not showing any tweets even after refreshing Status in Gwibber: Confirmed Bug description: After installing Ubuntu Lucid gwibber is not showing any tweets even after creating the account To manage notifications about this bug go to: https://bugs.launchpad.net/gwibber/+bug/546877/+subscriptions ___ Mailing list: https://launchpad.net/~gwibber-bugs Post to : gwibber-bugs@lists.launchpad.net Unsubscribe : https://launchpad.net/~gwibber-bugs More help : https://help.launchpad.net/ListHelp
Bug#630212: libvirt-bin: libvirt doesn't spawn qemu with supplementary groups
Package: libvirt-bin Version: 0.8.3-5+squeeze1 Severity: important Tags: upstream If you configure libvirt to spawn qemu with it's own user you can run into problems getting KVM to work. This is because although the qemu user belongs to the kvm and disk groups without calling initgroups the spawned process won't be able to access /dev/kvm (root:kvm) and much hilarity/head scratching will ensue. This problem has been documented upstream and has been patched in recent releases: https://bugzilla.redhat.com/show_bug.cgi?id=664406 In the end the workaround I applied was to nail the /dev/kvm device to: ls -l /dev/kvm crw-rw 1 root qemu 10, 232 Jun 12 11:51 /dev/kvm And nailed it up with: cat /etc/udev/rules.d/99-local-permissions.rules # Make kvm available to qemu KERNEL==kvm, GROUP=qemu, MODE=0660 -- System Information: Debian Release: 6.0.1 APT prefers stable APT policy: (990, 'stable'), (500, 'stable-updates') Architecture: i386 (i686) Kernel: Linux 2.6.32-5-686 (SMP w/1 CPU core) Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to en_GB.UTF-8) Shell: /bin/sh linked to /bin/dash -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org
Re: [opennms-devel] Antw: Updated Node Map patches post OUCE2011
On 1 June 2011 15:14, Michael Seibold michael.seib...@barmer-gek.de wrote: Hi Alex, great work! I want to contribute an idea for a little enhancement - getting the location coordinates (longitude, latitude) from postal codes (I posted this 08.09.2009 to the discussion list as automatically generated Maps with a lot of locations). Basically it would be a little add-on to your work. Maybe you or someone at the Dev-Jam can add this so your patches. I suspect not me. But maybe this is something to do in the RESTful service that returns geolocation information? You can get the geographic locations with the use of postal codes, see http://www.geonames.org/postal-codes/ Download Postalcodes for your country, which is a rather small file: http://download.geonames.org/export/zip/IT.zip Hmm, it's going to depend on country. For example in the UK the postcodes are copyrighted data. and add it to the postgres db so you don't need an online connection from your network management to the internet (something I don't like... and besides, you don't want your network management to fail if some parts of your net are not running, so a distributed network management application is no use for me): That would require the core developers consent. I doubt there is a desire to overly bloat the OpenNMS data model. -- Alex, homepage: http://www.bennee.com/~alex/ http://www.half-llama.co.uk -- Simplify data backup and recovery for your virtual environment with vRanger. Installation's a snap, and flexible recovery options mean your data is safe, secure and there when you need it. Data protection magic? Nope - It's vRanger. Get your free trial download today. http://p.sf.net/sfu/quest-sfdev2dev ___ Please read the OpenNMS Mailing List FAQ: http://www.opennms.org/index.php/Mailing_List_FAQ opennms-devel mailing list To *unsubscribe* or change your subscription options, see the bottom of this page: https://lists.sourceforge.net/lists/listinfo/opennms-devel
Problems with missing screen updates on recent version
Hi, For a while now I've been noticing screen corruption and missing updates on rxvt. The first thing I noticed was backspace wouldn't always update the screen so characters wouldn't disappear until another one was pressed. Even more corruption is noticeable if I scroll in mutt or execute something with an ncurses interface like the kernel menuconfig dialogues. If I move the window from within X then everything corrects itself. This makes me unsure if it's urxvt itself or one of the X libs in the background getting confused. My main machine is a Gentoo one but I'm running with the vanilla flag to disable Gentoo's patches. I've also tried running from a plain CVS checkout with the same problems. I'm now noticing similar problems on Ubuntu 10.04 and 11.04 machines running with the latest urxvt packages. Can anyone suggest anything I can try to narrow down the potential causes of the problem? -- Alex, homepage: http://www.bennee.com/~alex/ http://www.half-llama.co.uk ___ rxvt-unicode mailing list rxvt-unicode@lists.schmorp.de http://lists.schmorp.de/cgi-bin/mailman/listinfo/rxvt-unicode