Port-arm archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: panic: extent_alloc_subregion: bad size on HP T5325




On 14/01/2016 13:27, Martin Husemann wrote:
> size 0x4000000 is quite a bit, can you add printfs and see where it comes
> from?

I made the attached changes to the files you mentioned.
By the looks of it, the majority of the events happen in mvsoc_target()

http://pastebin.com/2LgNMqWH


Sevan
Index: ../../arm/marvell/mvsoc.c
===================================================================
RCS file: /cvsroot/src/sys/arch/arm/marvell/mvsoc.c,v
retrieving revision 1.24
diff -u -p -u -r1.24 mvsoc.c
--- ../../arm/marvell/mvsoc.c	6 Nov 2015 12:54:52 -0000	1.24
+++ ../../arm/marvell/mvsoc.c	14 Jan 2016 21:36:37 -0000
@@ -1123,6 +1123,8 @@ mvsoc_target(int tag, uint32_t *target, 
 	     uint32_t *size)
 {
 	int i;
+	/* Checkpoint 3 */
+	printf("Past Checkpoint 3\n");
 
 	KASSERT(regbase != 0xffffffff);
 
@@ -1139,6 +1141,8 @@ mvsoc_target(int tag, uint32_t *target, 
 
 		return 0;
 	}
+	/* Checkpoint 4 */
+	printf("Past Checkpoint 4\n");
 
 	/* sanity check */
 	for (i = 0; i < __arraycount(mvsoc_tags); i++)
@@ -1151,6 +1155,8 @@ mvsoc_target(int tag, uint32_t *target, 
 		*target = mvsoc_tags[i].target;
 	if (attr != NULL)
 		*attr = mvsoc_tags[i].attr;
+	/* Checkpoint 5 */
+	printf("Past Checkpoint 5\n");
 
 	if (mvsoc_tags[i].target == MVSOC_UNITID_DDR) {
 		if (tag == MARVELL_TAG_SDRAM_CS0 ||
@@ -1164,6 +1170,8 @@ mvsoc_target(int tag, uint32_t *target, 
 	} else
 		return mvsoc_target_peripheral(mvsoc_tags[i].target,
 		    mvsoc_tags[i].attr, base, size);
+	/* Checkpoint 6 */
+	printf("Past Checkpoint 6\n");
 }
 
 static int
Index: marvell_machdep.c
===================================================================
RCS file: /cvsroot/src/sys/arch/evbarm/marvell/marvell_machdep.c,v
retrieving revision 1.32
diff -u -p -u -r1.32 marvell_machdep.c
--- marvell_machdep.c	3 Jun 2015 03:25:51 -0000	1.32
+++ marvell_machdep.c	14 Jan 2016 21:36:10 -0000
@@ -830,10 +830,14 @@ marvell_device_register(device_t dev, vo
 		prop_dictionary_set_uint64(dict, "iostart", start);
 		prop_dictionary_set_uint64(dict, "ioend", end);
 		marvell_startend_by_tag(memtag, &start, &end);
+		/* Checkpoint 1 */
+		printf("Past Checkpoint 1\n");
 		prop_dictionary_set_uint64(dict, "memstart", start);
 		prop_dictionary_set_uint64(dict, "memend", end);
 		prop_dictionary_set_uint32(dict,
 		    "cache-line-size", arm_dcache_align);
+		/* Checkpoint 6 */
+		printf("Past Checkpoint 6\n");
 	}
 #endif
 }
@@ -844,14 +848,20 @@ marvell_startend_by_tag(int tag, uint64_
 {
 	uint32_t base, size;
 	int win;
-
+	/* Checkpoint 2 */
+	printf("Past Checkpoint 2\n");
 	win = mvsoc_target(tag, NULL, NULL, &base, &size);
 	if (size != 0) {
-		if (win < nremap)
+		if (win < nremap) {
 			*start = read_mlmbreg(MVSOC_MLMB_WRLR(win)) |
 			    ((read_mlmbreg(MVSOC_MLMB_WRHR(win)) << 16) << 16);
-		else
+		/* Checkpoint 7 */
+		printf("Past Checkpoint 7\n");
+		} else {
 			*start = base;
+			/* Checkpoint 8 */
+			printf("Past Checkpoint 8\n");
+		}
 		*end = *start + size - 1;
 	}
 }


Home | Main Index | Thread Index | Old Index