[Mesa-dev] misc pahole repacking

Brian Paul brianp at vmware.com
Wed Jan 31 15:57:53 UTC 2018


On 01/31/2018 01:48 AM, Tapani Pälli wrote:
> Reviewed-by: Tapani Pälli <tapani.palli at intel.com>
> 
> (I verified the 1st one and I trust you on the 2nd one.)
> 
> BTW I witnessed pahole crashing when processing visit() methods of 
> ir_print_visitor class, did you experience that? My pahole version is 
> 1.9, it dies in /lib64/libdwarves.so.1 after some prints like:
> 
> --- 8< ---
> die__process_unit: DW_TAG_restrict_type (0x37) @ <0x122be84> not handled!
> die__process_unit: DW_TAG_unspecified_type (0x3b) @ <0x1230c68> not 
> handled!
> die__process_unit: DW_TAG_restrict_type (0x37) @ <0x12312d3> not handled!
> die__process_unit: DW_TAG_unspecified_type (0x3b) @ <0x1231bc4> not 
> handled!
> die__process_unit: DW_TAG_restrict_type (0x37) @ <0x12340bb> not handled!
> die__process_unit: DW_TAG_rvalue_reference_type (0x42) @ <0x123f984> not 
> handled!
> die__process_unit: DW_TAG_rvalue_reference_type (0x42) @ <0x1242348> not 
> handled!
> die__process_unit: DW_TAG_rvalue_reference_type (0x42) @ <0x1242398> not 
> handled!
> die__process_unit: DW_TAG_rvalue_reference_type (0x42) @ <0x12423e8> not 
> handled!
> die__process_unit: DW_TAG_rvalue_reference_type (0x42) @ <0x1242572> not 
> handled!
> die__process_unit: DW_TAG_rvalue_reference_type (0x42) @ <0x12425c2> not 
> handled!
> die__process_unit: DW_TAG_rvalue_reference_type (0x42) @ <0x12425ea> not 
> handled!
> die__process_function: DW_TAG_rvalue_reference_type (0x42) @ <0x1247929> 
> not handled!

Me too.  I have v1.9 as well and it crashes pretty quickly, for example:

$ pahole build-llvmpipe/lib/gallium/libGL.so.1.5.0
struct xm_driver {
	struct pipe_screen *       (*create_pipe_screen)(Display *); /*     0 
   8 */
	struct st_api *            (*create_st_api)(void); /*     8     8 */

	/* size: 16, cachelines: 1, members: 2 */
	/* last cacheline: 16 bytes */
};
struct sw_winsys {
	void                       (*destroy)(struct sw_winsys *); /*     0 
8 */
	boolean                    (*is_displaytarget_format_supported)(struct 
sw_winsys *, unsigned int, enum pipe_format); /*     8     8 */
	struct sw_displaytarget *  (*displaytarget_create)(struct sw_winsys *, 
unsigned int, enum pipe_format, unsigned int, unsigned int, unsigned 
int, const void  *, unsigned int *); /*    16     8 */
	struct sw_displaytarget *  (*displaytarget_from_handle)(struct 
sw_winsys *, const struct pipe_resource  *, struct winsys_handle *, 
unsigned int *); /*    24     8 */
	boolean                    (*displaytarget_get_handle)(struct sw_winsys 
*, struct sw_displaytarget *, struct winsys_handle *); /*    32     8 */
	void *                     (*displaytarget_map)(struct sw_winsys *, 
struct sw_displaytarget *, unsigned int); /*    40     8 */
	void                       (*displaytarget_unmap)(struct sw_winsys *, 
struct sw_displaytarget *); /*    48     8 */
	void                       (*displaytarget_display)(struct sw_winsys *, 
struct sw_displaytarget *, void *, struct pipe_box *); /*    56     8 */
	/* --- cacheline 1 boundary (64 bytes) --- */
	void                       (*displaytarget_destroy)(struct sw_winsys *, 
struct sw_displaytarget *); /*    64     8 */

	/* size: 72, cachelines: 2, members: 9 */
	/* last cacheline: 8 bytes */
};
die__process_unit: DW_TAG_restrict_type (0x37) @ <0x3b09> not handled!

-Brian

> 
> 
> 
> On 31.01.2018 01:41, Dave Airlie wrote:
>> This month's Dave hasn't got enough sleep to do real work, lets
>> repack some structs.
>>
>> The format descriptions one is quite good though it reduces the
>> radv binary data segment.
>>
>> Dave.
>>
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
>>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev



More information about the mesa-dev mailing list