Re: [Intel-gfx] [PATCH 4/4] drm/i915: Add DSC support to MST path

2022-09-04 Thread Lisovskiy, Stanislav
On Sun, Sep 04, 2022 at 03:07:46PM +0300, Govindapillai, Vinod wrote: > On Thu, 2022-09-01 at 13:11 +0300, Stanislav Lisovskiy wrote: > > Whenever we are not able to get enough timeslots > > for required PBN, let's try to allocate those > > using DSC, just same way as we do for SST. > > > > v2: Re

[Intel-gfx] ✓ Fi.CI.IGT: success for DYNDBG: opt-in class'd debug for modules, use in drm. (rev4)

2022-09-04 Thread Patchwork
== Series Details == Series: DYNDBG: opt-in class'd debug for modules, use in drm. (rev4) URL : https://patchwork.freedesktop.org/series/106427/ State : success == Summary == CI Bug Log - changes from CI_DRM_12068_full -> Patchwork_106427v4_full

Re: [Intel-gfx] [PATCH v7 11/15] mei: gsc: setup gsc extended operational memory

2022-09-04 Thread Ceraolo Spurio, Daniele
On 9/4/2022 12:29 AM, Usyskin, Alexander wrote: +static void pxp_is_ready(struct mei_cl_device *cldev) +{ + struct mei_device *bus = cldev->bus; + + switch (bus->pxp_mode) { + case MEI_DEV_PXP_READY: + case MEI_DEV_PXP_DEFAULT: + cldev->do_match = 1; Can

[Intel-gfx] ✓ Fi.CI.BAT: success for DYNDBG: opt-in class'd debug for modules, use in drm. (rev4)

2022-09-04 Thread Patchwork
== Series Details == Series: DYNDBG: opt-in class'd debug for modules, use in drm. (rev4) URL : https://patchwork.freedesktop.org/series/106427/ State : success == Summary == CI Bug Log - changes from CI_DRM_12068 -> Patchwork_106427v4 Summ

[Intel-gfx] ✗ Fi.CI.SPARSE: warning for DYNDBG: opt-in class'd debug for modules, use in drm. (rev4)

2022-09-04 Thread Patchwork
== Series Details == Series: DYNDBG: opt-in class'd debug for modules, use in drm. (rev4) URL : https://patchwork.freedesktop.org/series/106427/ State : warning == Summary == Error: dim sparse failed Sparse version: v0.6.2 Fast mode used, each commit won't be checked separately.

[Intel-gfx] ✗ Fi.CI.CHECKPATCH: warning for DYNDBG: opt-in class'd debug for modules, use in drm. (rev4)

2022-09-04 Thread Patchwork
== Series Details == Series: DYNDBG: opt-in class'd debug for modules, use in drm. (rev4) URL : https://patchwork.freedesktop.org/series/106427/ State : warning == Summary == Error: dim checkpatch failed d762077fcfcf dyndbg: fix static_branch manipulation b01666fdf992 dyndbg: fix module.dyndbg

[Intel-gfx] [PATCH v6 53/57] dyndbg: add/use is_dyndbg_header then set _uplink

2022-09-04 Thread Jim Cromie
Add static int is_dyndbg_header(d), which verifies that the arg is initialized as expected; that it points to the _ddebug_hdr & _ddebug_site_hdr records initialized by DYNAMIC_DEBUG_TABLE(). That init macro sets the _uplink fields in the 2 records to point at each other. This is an impossible sit

[Intel-gfx] [PATCH v6 47/57] dyndbg: demote iter->site in _init

2022-09-04 Thread Jim Cromie
--- lib/dynamic_debug.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/dynamic_debug.c b/lib/dynamic_debug.c index 059212df68f9..65b0a1025ddf 100644 --- a/lib/dynamic_debug.c +++ b/lib/dynamic_debug.c @@ -1547,7 +1547,7 @@ static int __init dynamic_debug_init(void)

[Intel-gfx] [PATCH v6 50/57] dyndbg: count unique callsites

2022-09-04 Thread Jim Cromie
Count de-duplicated callsites. Since the _ddebug_site excludes lineno, all callsites in a function are identical, and this effectively counts functions in the module with callsites. Signed-off-by: Jim Cromie --- lib/dynamic_debug.c | 11 +-- 1 file changed, 5 insertions(+), 6 deletions(

[Intel-gfx] [PATCH v6 56/57] dyndbg: work ddebug_map_site

2022-09-04 Thread Jim Cromie
attempt container-of, broken, missing use of uplink... took that out. ptr computations are naive, and wrong. Deeper prob is lack of _ddebug_vec, with header and descs in same struct. maybe. builtin_state looks right in debugger --- lib/dynamic_debug.c | 21 +++-- 1 file changed,

[Intel-gfx] [PATCH v6 54/57] dyndbg: add .gnu.linkonce. & __dyndbg* sections in module.lds.h

2022-09-04 Thread Jim Cromie
For a long time now, loadable modules have tacitly linked the __dyndbg section into the .ko, as is observable in dmesg by enabling module.c's pr_debugs and loading a module. Recently, __dyndbg_sites was added, following the original model. But now, we need to explicitly name those (__dyndbg, __dy

[Intel-gfx] [PATCH v6 43/57] dyndbg: add _index, _map to struct _ddebug

2022-09-04 Thread Jim Cromie
We now have 2 vectors of data: (__dyndbg, __dyndbg_sites), known to be equal-length, with _ddebug.site connecting them, like rungs on a ladder. In order to drop _ddebug.site, we need to replace the absolute ptr with a cheap relative-address computation: struct _ddebug_site *site = _ddebug_map_

[Intel-gfx] [PATCH v6 55/57] dyndbg: dynamic_debug_sites_reclaim() using free_reserved_page() WAG

2022-09-04 Thread Jim Cromie
STATUS: broken with some over-free, punt and comment out late_initcall Implement dymamic_debug_sites_reclaim(as a late_initcall) to free the tail~47% of the builtin __dyndbg_sites[] vector back to the buddy allocator. Code is copied from mm/init.c:free_initmem(), wo the poisoning. Comments carg

[Intel-gfx] [PATCH v6 45/57] dyndbg: de-duplicate sites

2022-09-04 Thread Jim Cromie
In __ddebug_add_module(), detect repeated site records (by function name changes), and push changes onto the stack/vector passed in from dynamic_debug_init(). For ddebug_add_module(), this transparently de-duplicates the local sites vector (passed in recently added stack-base, and offset 0). Sign

[Intel-gfx] [PATCH v6 48/57] dyndbg: add .gnu.linkonce slot in vmlinux.lds.h KEEPs

2022-09-04 Thread Jim Cromie
Add linker symbols and KEEPs for .gnu.linkonce.dyndbg and .gnu.linkonce.dyndbg_sites sections, placing them in front of their respective dyndbg and dyndbg_sites sections. This placement gives us a known relative offset (ie -1) from the start of the vector to the header, letting us use container_of

[Intel-gfx] [PATCH v6 29/57] drm_print: prefer bare printk KERN_DEBUG on generic fn

2022-09-04 Thread Jim Cromie
drm_print.c calls pr_debug() just once, from __drm_printfn_debug(), which is a generic/service fn. The callsite is compile-time enabled by DEBUG in both DYNAMIC_DEBUG=y/n builds. For dyndbg builds, reverting this callsite back to bare printk is correcting a few anti-features: 1- callsite is gene

[Intel-gfx] [PATCH v6 42/57] dyndbg: shrink lineno field by 2 bits

2022-09-04 Thread Jim Cromie
struct _ddebug.lineno int:18 is bigger than we need: git ls-files | grep -P '\.c$' | xargs wc -l | sort -n | tail -n20 ... 22553 drivers/scsi/lpfc/lpfc_sli.c 28593 drivers/net/wireless/broadcom/brcm80211/brcmsmac/phy/phy_n.c 46300 drivers/net/wireless/realtek/rtw88/rtw8822c_table.c

[Intel-gfx] [PATCH v6 57/57] dyndbg: fiddle with readback value on LEVEL_NAMES types

2022-09-04 Thread Jim Cromie
my test scripts were writing one val, reading back val+1 echo L3 > p_level_names cat p_level_names L4 fix this w a -1 offset. Signed-off-by: Jim Cromie --- lib/dynamic_debug.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/dynamic_debug.c b/lib/dynamic_debug.c index 11fea1f818

[Intel-gfx] [PATCH v6 24/57] drm_print: interpose drm_*dbg with forwarding macros

2022-09-04 Thread Jim Cromie
change drm_dev_dbg & drm_dbg to macros, which forward to the renamed functions (with __ prefix added). Those functions sit below the categorized layer of macros implementing the DRM debug.category API, and implement most of it. These are good places to insert dynamic-debug jump-label mechanics, w

[Intel-gfx] [PATCH v6 41/57] dyndbg: split repeating columns to new struct _ddebug_site

2022-09-04 Thread Jim Cromie
Struct _ddebug has 3 RO-data fields: _module, _file, _function, which have significant repetition in the builtins: 4222 unique records / 8920 callsites on a recent laptop build. Thats just 47% unique, on 24/56 of the unitary record. The quick path to excising this redundancy is: 1- split the tab

[Intel-gfx] [PATCH v6 49/57] dyndbg: add structs _ddebug_hdr, _ddebug_site_hdr

2022-09-04 Thread Jim Cromie
Add new structs _ddebug_hdr and _ddebug_site_hdr, latter for symmetry. The job of the struct _ddebug_hdr is to: Contain an _uplink member, which points up to the _ddebug_info record that keeps builtin and module's dyndbg state. That record is init'd (by dynamic_debug_init for builtins, or find_m

[Intel-gfx] [PATCH v6 44/57] dyndbg: extend __ddebug_add_module proto to allow packing sites

2022-09-04 Thread Jim Cromie
In order to actually reclaim useful blocks of memory, we need to repack the vector of redundant site recs, not just detect the duplicates. To allow this, extend __ddebug_add_module()s prototype by adding: struct _ddebug_site *packed_sites - address of empty "stack" unsigned int *packed_base

[Intel-gfx] [PATCH v6 51/57] dyndbg: prevent build bugs via -DNO_DYNAMIC_DEBUG_TABLE

2022-09-04 Thread Jim Cromie
The next patch adds DEFINE_DYNAMIC_DEBUG_TABLE(), which broke several subtrees, including efi, vdso, and some of arch/*/boot/compressed, with various relocation errors, iirc. Avoid those problems by adding a define to suppress the "transparent" DEFINE_DYNAMIC_DEBUG_TABLE() invocation. I found the

[Intel-gfx] [PATCH v6 20/57] dyndbg: add drm.debug style (drm/parameters/debug) bitmap support

2022-09-04 Thread Jim Cromie
Add kernel_param_ops and callbacks to use a class-map to validate and apply input to a sysfs-node, which allows users to control classes defined in that class-map. This supports uses like: echo 0x3 > /sys/module/drm/parameters/debug IE add these: - int param_set_dyndbg_classes() - int param

[Intel-gfx] [PATCH v6 31/57] nouveau: change nvkm_debug/trace to use dev_dbg POC

2022-09-04 Thread Jim Cromie
These 2 macros formerly used dev_info, and they still check subdev->debug to gate the printing. So dyndbg control is redundant ATM (and possibly confusing, since its off by default). prdbg count is up from 3, or from 65 (with VMM_DEBUG here) [7.765379] dyndbg: 516 debug prints in module nouv

[Intel-gfx] [PATCH v6 46/57] dyndbg: drop site-> in add-module, more needed

2022-09-04 Thread Jim Cromie
--- lib/dynamic_debug.c | 15 --- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/lib/dynamic_debug.c b/lib/dynamic_debug.c index 41c23ec979f4..059212df68f9 100644 --- a/lib/dynamic_debug.c +++ b/lib/dynamic_debug.c @@ -1347,7 +1347,7 @@ static int __ddebug_add_module(str

[Intel-gfx] [PATCH v6 40/57] dyndbg: abstraction macros for modname, function, filename fields

2022-09-04 Thread Jim Cromie
The .data table built of struct _ddebug[]s has about 40% repetition in the "decorator" fields: modname, function, filename. The real fix is to "normalize the db", but 1st we need a layer of accessor macros, giving us just one field deref to alter later. So: define 3 field-abstraction macros: des

[Intel-gfx] [PATCH v6 27/57] drm-print: add drm_dbg_driver to improve namespace symmetry

2022-09-04 Thread Jim Cromie
drm_print defines all of these: drm_dbg_{core,kms,prime,atomic,vbl,lease,_dp,_drmres} but not drm_dbg_driver itself, since it was the original drm_dbg. To improve namespace symmetry, change the drm_dbg defn to drm_dbg_driver, and redef grandfathered name to symmetric one. This will help with

[Intel-gfx] [PATCH v6 52/57] dyndbg: add DEFINE_DYNAMIC_DEBUG_TABLE, use it tacitly RFC

2022-09-04 Thread Jim Cromie
This defines a new macro (tbd: tweak name) which is a special version of DEFINE_DYNAMIC_DEBUG_METADATA_CLS(). Unlike that macro, which declares callsites in pairs of desc/site recs. This macro declares a pair of header records, which the linker script then places once (.gnu.linkonce.) into the fr

[Intel-gfx] [PATCH v6 38/57] dyndbg: add 2 more trace-events: pr_debug, dev_dbg

2022-09-04 Thread Jim Cromie
ddebug_trace() currently issues a single printk:console event. Replace that, adding include/trace/events/dyndbg.h, which defines 2 new events: - dyndbg:prdbg - from trace_prdbg() - if !dev - dyndbg:devdbg - from trace_devdbg() - if !!dev This links the legacy pr_debug API to tracefs, via dyndbg

[Intel-gfx] [PATCH v6 39/57] dyndbg/drm: POC add tracebits sysfs-knob

2022-09-04 Thread Jim Cromie
clone DRM.debug interface to DRM.tracebits: ie map bits to drm-debug-categories, except this interface enables messages to tracefs, not to syslog. 1- we reuse the class-map added previously. this reflects the single source of both syslog/trace events 2- add a 2nd struct ddebug_classes_bitmap_p

[Intel-gfx] [PATCH v6 35/57] dyndbg: add _DPRINTK_FLAGS_TRACE

2022-09-04 Thread Jim Cromie
add new flag, and OR it into _DPRINTK_FLAGS_ENABLED definition CC: vincent.whitchu...@axis.com Signed-off-by: Jim Cromie --- include/linux/dynamic_debug.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/include/linux/dynamic_debug.h b/include/linux/dynamic_debug.h index ec

[Intel-gfx] [PATCH v6 36/57] dyndbg: add write-events-to-tracefs code

2022-09-04 Thread Jim Cromie
adds: ddebug_trace() uses trace_console() temporarily to issue printk:console event uses internal-ish __ftrace_trace_stack code: 4-context buffer stack, barriers per Steve Rostedt call it from new funcs: ddebug_printk() - print to both syslog/tracefs ddebug_dev_printk() - dev-print to

[Intel-gfx] [PATCH v6 12/57] dyndbg: add class_id to pr_debug callsites

2022-09-04 Thread Jim Cromie
DRM issues ~10 exclusive categories of debug messages; to represent this directly in dyndbg, add a new 6-bit field: struct _ddebug.class_id. This gives us 64 classes, which should be more than enough. #> echo 0x012345678 > /sys/module/drm/parameters/debug All existing callsites are initialized

[Intel-gfx] [PATCH v6 33/57] nouveau: WIP add 2 LEVEL_NUM classmaps for CLI, SUBDEV

2022-09-04 Thread Jim Cromie
clone the nvkm_printk,_,__ macro ladder into nvkm_drmdbg,_,__. And alter the debug, trace, spam macros to use the renamed ladder. This *sets-up* (not done yet) to remove the _subdev->debug >= (l) condition, once the bitmap-param is wired up correctly, and figured into dyndbg's jump-label enablemen

[Intel-gfx] [PATCH v6 34/57] dyndbg: add _DPRINTK_FLAGS_ENABLED

2022-09-04 Thread Jim Cromie
Distinguish the condition: _DPRINTK_FLAGS_ENABLED from the bit: _DPRINTK_FLAGS_PRINT, and re-define former in terms of latter, in preparation to add a 2nd bit: _DPRINTK_FLAGS_TRACE Update JUMP_LABEL code block to check _DPRINTK_FLAGS_ENABLED symbol. Also add a 'K' to get new symbol _DPRINTK_FLAGS_

[Intel-gfx] [PATCH v6 26/57] drm-print.h: include dyndbg header

2022-09-04 Thread Jim Cromie
lkp robot told me: >> drivers/gpu/drm/drm_ioc32.c:989:2: error: call to undeclared function '_dynamic_func_call_cls'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] DRM_DEBUG("comm=\"%s\", pid=%d, dev=0x%lx, auth=%d, %s\n", Si

[Intel-gfx] [PATCH v6 30/57] drm_print: add _ddebug descriptor to drm_*dbg prototypes

2022-09-04 Thread Jim Cromie
upgrade the callchain to drm_dbg() and drm_dev_dbg(); add a struct _ddebug ptr parameter to them, and supply that additional param by replacing the '_no_desc' flavor of dyndbg Factory macro currently used with the flavor that supplies the descriptor. NOTES: The descriptor gives these fns access t

[Intel-gfx] [PATCH v6 32/57] nouveau: adapt NV_DEBUG, NV_ATOMIC to use DRM.debug

2022-09-04 Thread Jim Cromie
These 2 macros used drm_debug_enabled() on DRM_UT_{DRIVER,ATOMIC} respectively, replace those with drm_dbg_##cat invocations. this results in new class'd prdbg callsites: :#> grep nouveau /proc/dynamic_debug/control | grep class | wc 1161130 15584 :#> grep nouveau /proc/dynamic_debug/co

[Intel-gfx] [PATCH v6 15/57] kernel/module: add __dyndbg_classes section

2022-09-04 Thread Jim Cromie
Add __dyndbg_classes section, using __dyndbg as a model. Use it: vmlinux.lds.h: KEEP the new section, which also silences orphan section warning on loadable modules. Add (__start_/__stop_)__dyndbg_classes linker symbols for the c externs (below). kernel/module/main.c: - fill new fields in find_

[Intel-gfx] [PATCH v6 25/57] drm_print: wrap drm_*_dbg in dyndbg descriptor factory macro

2022-09-04 Thread Jim Cromie
For CONFIG_DRM_USE_DYNAMIC_DEBUG=y, wrap __drm_dbg() & __drm_dev_dbg() in one of dyndbg's Factory macros: _dynamic_func_call_no_desc(). This adds the callsite descriptor into the code, and an entry for each into /proc/dynamic_debug/control. #> echo class DRM_UT_ATOMIC +p > /proc/dynamic_debug/c

[Intel-gfx] [PATCH v6 37/57] dyndbg: add 2 trace-events: drm_debug, drm_devdbg

2022-09-04 Thread Jim Cromie
Recently added ddebug_trace() issues a single printk:console event. Replace that event with 2 new ones, defined in a new header: include/trace/events/dyndbg.h - dyndbg:prdbg - from trace_prdbg() - if !dev - dyndbg:devdbg - from trace_devdbg() - if !!dev This links the legacy pr_debug API to tra

[Intel-gfx] [PATCH v6 17/57] dyndbg: validate class FOO by checking with module

2022-09-04 Thread Jim Cromie
Add module-to-class validation: #> echo class DRM_UT_KMS +p > /proc/dynamic_debug/control If a query has "class FOO", then ddebug_find_valid_class(), called from ddebug_change(), requires that FOO is known to module X, otherwize the query is skipped entirely for X. This protects each module's

[Intel-gfx] [PATCH v6 09/57] dyndbg: drop EXPORTed dynamic_debug_exec_queries

2022-09-04 Thread Jim Cromie
This exported fn is unused, and will not be needed. Lets dump it. The export was added to let drm control pr_debugs, as part of using them to avoid drm_debug_enabled overheads. But its better to just implement the drm.debug bitmap interface, then its available for everyone. Fixes: a2d375eda771 (

[Intel-gfx] [PATCH v6 22/57] drm_print: condense enum drm_debug_category

2022-09-04 Thread Jim Cromie
enum drm_debug_category has 10 categories, but is initialized with bitmasks which require 10 bits of underlying storage. By using natural enumeration, and moving the BIT(cat) into drm_debug_enabled(), the enum fits in 4 bits, allowing the category to be represented directly in pr_debug callsites,

[Intel-gfx] [PATCH v6 18/57] doc-dyndbg: describe "class CLASS_NAME" query support

2022-09-04 Thread Jim Cromie
Add an explanation of the new "class CLASS_NAME" syntax and meaning, noting that the module determines if CLASS_NAME applies to it. Signed-off-by: Jim Cromie --- Documentation/admin-guide/dynamic-debug-howto.rst | 11 +++ 1 file changed, 11 insertions(+) diff --git a/Documentation/admin

[Intel-gfx] [PATCH v6 07/57] dyndbg: let query-modname override actual module name

2022-09-04 Thread Jim Cromie
dyndbg's control-parser: ddebug_parse_query(), requires that search terms: module, func, file, lineno, are used only once in a query; a thing cannot be named both foo and bar. The cited commit added an overriding module modname, taken from the module loader, which is authoritative. So it set quer

[Intel-gfx] [PATCH v6 14/57] dyndbg: add DECLARE_DYNDBG_CLASSMAP macro

2022-09-04 Thread Jim Cromie
Using DECLARE_DYNDBG_CLASSMAP, modules can declare up to 31 classnames. By doing so, they authorize dyndbg to manipulate class'd prdbgs (ie: __pr_debug_cls, and soon drm_*dbg), ala:: :#> echo class DRM_UT_KMS +p > /proc/dynamic_debug/control The macro declares and initializes a static struct d

[Intel-gfx] [PATCH v6 23/57] drm: POC drm on dyndbg - use in core, 2 helpers, 3 drivers.

2022-09-04 Thread Jim Cromie
Use DECLARE_DYNDBG_CLASSMAP across DRM: - in .c files, since macro defines/initializes a record - in drivers, $mod_{drv,drm,param}.c ie where param setup is done, since a classmap is param related - in drm/drm_print.c since existing __drm_debug param is defined there, and we ifdef it

[Intel-gfx] [PATCH v6 05/57] dyndbg: reverse module.callsite walk in cat control

2022-09-04 Thread Jim Cromie
Walk the module's vector of callsites backwards; ie N..0. This "corrects" the backwards appearance of a module's prdbg vector when walked 0..N. I think this is due to linker mechanics, which I'm inclined to treat as immutable, and the order is fixable in display. No functional changes. Combined

[Intel-gfx] [PATCH v6 28/57] drm_print: refine drm_debug_enabled for jump-label

2022-09-04 Thread Jim Cromie
In order to use dynamic-debug's jump-label optimization in drm-debug, its clarifying to refine drm_debug_enabled into 3 uses: 1. drm_debug_enabled - legacy, public 2. __drm_debug_enabled - optimized for dyndbg jump-label enablement. 3. _drm_debug_enabled - pr_debug instrumented, observable 1.

[Intel-gfx] [PATCH v6 19/57] doc-dyndbg: edit dynamic-debug-howto for brevity, audience

2022-09-04 Thread Jim Cromie
Rework/modernize docs: - use /proc/dynamic_debug/control in examples its *always* there (when dyndbg is config'd), even when is not. drop talk, its a distraction here. - alias ddcmd='echo $* > /proc/dynamic_debug/control focus on args: declutter, hide boilerplate, make pwd independen

[Intel-gfx] [PATCH v6 21/57] dyndbg: test DECLARE_DYNDBG_CLASSMAP, sysfs nodes

2022-09-04 Thread Jim Cromie
Demonstrate use of DECLARE_DYNDBG_CLASSMAP macro, and expose them as sysfs-nodes for testing. For each of the 4 class-map-types: - declare a class-map of that type, - declare the enum corresponding to those class-names - share _base across 0..30 range - add a __pr_debug_cls() call for eac

[Intel-gfx] [PATCH v6 16/57] dyndbg: add ddebug_attach_module_classes

2022-09-04 Thread Jim Cromie
Add ddebug_attach_module_classes(), call it from ddebug_add_module(). It scans the classes/section its given, finds records where the module-name matches the module being added, and adds them to the module's maps list. No locking here, since the record isn't yet linked into the ddebug_tables list.

[Intel-gfx] [PATCH v6 13/57] dyndbg: add __pr_debug_cls for testing

2022-09-04 Thread Jim Cromie
For selftest purposes, add __pr_debug_cls(class, fmt, ...) I didn't think we'd need to define this, since DRM effectively has it already in drm_dbg, drm_devdbg. But test_dynamic_debug needs it in order to demonstrate all the moving parts. Note the __ prefix; its not intended for general use, at

[Intel-gfx] [PATCH v6 06/57] dyndbg: use ESCAPE_SPACE for cat control

2022-09-04 Thread Jim Cromie
`cat control` currently does octal escape, so '\n' becomes "\012". Change this to display as "\n" instead, which reads much cleaner. :#> head -n7 /proc/dynamic_debug/control # filename:lineno [module]function flags format init/main.c:1179 [main]initcall_blacklist =_ "blacklisting initcall

[Intel-gfx] [PATCH v6 11/57] dyndbg: gather __dyndbg[] state into struct _ddebug_info

2022-09-04 Thread Jim Cromie
This new struct composes the linker provided (vector,len) section, and provides a place to add other __dyndbg[] state-data later: descs - the vector of descriptors in __dyndbg section. num_descs - length of the data/section. Use it, in several different ways, as follows: In lib/dynamic_debug

[Intel-gfx] [PATCH v6 03/57] dyndbg: show both old and new in change-info

2022-09-04 Thread Jim Cromie
print "old => new" flag values to the info("change") message. no functional change. Acked-by: Jason Baron Signed-off-by: Jim Cromie --- lib/dynamic_debug.c | 11 ++- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/dynamic_debug.c b/lib/dynamic_debug.c index a56c1286ff

[Intel-gfx] [PATCH v6 08/57] dyndbg: add test_dynamic_debug module

2022-09-04 Thread Jim Cromie
Provide a simple module to allow testing DYNAMIC_DEBUG behavior. It calls do_prints() from module-init, and with a sysfs-node. dmesg -C dmesg -w & modprobe test_dynamic_debug dyndbg=+p echo 1 > /sys/module/dynamic_debug/parameters/verbose cat /sys/module/test_dynamic_debug/parameters/d

[Intel-gfx] [PATCH v6 10/57] dyndbg: cleanup auto vars in dynamic_debug_init

2022-09-04 Thread Jim Cromie
rework var-names for clarity, regularity rename variables - n to mod_sites - it counts sites-per-module - entries to i - display only - iter_start to iter_mod_start - marks start of each module's subrange - modct to mod_ct - stylistic new iterator var: - site - cursor parallel to iter

[Intel-gfx] [PATCH v6 02/57] dyndbg: fix module.dyndbg handling

2022-09-04 Thread Jim Cromie
For CONFIG_DYNAMIC_DEBUG=N, the ddebug_dyndbg_module_param_cb() stub-fn is too permissive: bash-5.1# modprobe drm JUNKdyndbg bash-5.1# modprobe drm dyndbgJUNK [ 42.933220] dyndbg param is supported only in CONFIG_DYNAMIC_DEBUG builds [ 42.937484] ACPI: bus type drm_connector registered This c

[Intel-gfx] [PATCH v6 04/57] dyndbg: reverse module walk in cat control

2022-09-04 Thread Jim Cromie
/proc/dynamic_debug/control walks the prdbg catalog in "reverse", fix this by adding new ddebug_tables to tail of list. This puts init/main.c entries 1st, which looks more than coincidental. no functional changes. Acked-by: Jason Baron Signed-off-by: Jim Cromie --- lib/dynamic_debug.c | 2 +-

[Intel-gfx] [PATCH v6 01/57] dyndbg: fix static_branch manipulation

2022-09-04 Thread Jim Cromie
In https://lore.kernel.org/lkml/20211209150910.ga23...@axis.com/ Vincent's patch commented on, and worked around, a bug toggling static_branch's, when a 2nd PRINTK-ish flag was added. The bug results in a premature static_branch_disable when the 1st of 2 flags was disabled. The cited commit comp

[Intel-gfx] [PATCH v6 00/57] DYNDBG: opt-in class'd debug for modules, use in drm.

2022-09-04 Thread Jim Cromie
hi Greg, Jason, DRM-folk, Steven, If Im not too late for linux-next in this cycle, heres V6. Diffs are minor: - rebased onto e47eb90a0a9a (tag: next-20220901, linux-next/master) gets past Kconfig conflict, same for drm-tip. - uint debug_level, not ulong. to fit nouveau. - -1 on param-read

Re: [Intel-gfx] [PATCH 4/4] drm/i915: Add DSC support to MST path

2022-09-04 Thread Govindapillai, Vinod
On Thu, 2022-09-01 at 13:11 +0300, Stanislav Lisovskiy wrote: > Whenever we are not able to get enough timeslots > for required PBN, let's try to allocate those > using DSC, just same way as we do for SST. > > v2: Removed intel_dp_mst_dsc_compute_config and refactored >     intel_dp_dsc_compute_co

Re: [Intel-gfx] [PATCH 3/4] drm/i915: Extract drm_dp_atomic_find_vcpi_slots cycle to separate function

2022-09-04 Thread Govindapillai, Vinod
Reviewed-by: Vinod Govindapillai Vinod On Thu, 2022-09-01 at 13:11 +0300, Stanislav Lisovskiy wrote: > We would be using almost same code to loop through bpps while calling > drm_dp_atomic_find_vcpi_slots - lets remove this duplication by > introducing a new function intel_dp_mst_find_vcpi_slots

Re: [Intel-gfx] [PATCH v7 11/15] mei: gsc: setup gsc extended operational memory

2022-09-04 Thread Usyskin, Alexander
> > +static void pxp_is_ready(struct mei_cl_device *cldev) > > +{ > > + struct mei_device *bus = cldev->bus; > > + > > + switch (bus->pxp_mode) { > > + case MEI_DEV_PXP_READY: > > + case MEI_DEV_PXP_DEFAULT: > > + cldev->do_match = 1; > > Can you explain why you set do_match = 1