Re: [PATCH 3/3] ia64: Call migration code on correctable errors v6

Russ Anderson
2008-06-25T22:25:53Z

On Mon, Jun 23, 2008 at 12:25:40PM +0900, KOSAKI Motohiro wrote:
> Hi
>
> > +static ssize_t
> > +badpage_show(struct kobject *kobj,
> > + struct kobj_attribute *attr, char *buf)
> > +
> > +{
> > + struct page *page, *page2;
> > + int i = 0, cnt = 0;
> > + char *bufend = buf + PAGE_SIZE;
> > +
> > + cnt = snprintf(buf, bufend - (buf + cnt),
> > + "Bad RAM: %d kB, %d pages marked bad\n"
> > + "List of bad physical pages\n",
> > + total_badpages << (PAGE_SHIFT - 10), total_badpages);
> > +
> > + list_for_each_entry_safe(page, page2, &badpagelist, lru) {
> > + if (bufend - (buf + cnt) < 20)
> > + break; /* Avoid overflowing the buffer */
> > + cnt += snprintf(buf + cnt, bufend - (buf + cnt),
> > + " 0x%011lx", page_to_phys(page));
> > + if (!(++i % 5))
> > + cnt += snprintf(buf + cnt, bufend - (buf + cnt), "\n");
> > + }
> > + cnt += snprintf(buf + cnt, bufend - (buf + cnt), "\n");
> > +
> > + return cnt;
> > +}
>
> it seems /proc/meminfo is better.
> because badpage is architecture independent concept.
>
> nonsense?

The original patch used /proc/ (/proc/meminfo had badpage summary info
and /proc/badram had detailed info. It was suggested that /sys was
a better place.

FWIW, I'm more than happy to put it anywhere deemed "best" by
the community. It is currently /sys/kernel/badram.

Thanks,