If we'll give up on "1." (Pekka, ping), then we need to solve "2." in a sane way: we'll have to add a 'NR_FILE_PAGES - NR_SHMEM - <todo-locked-file-pages>' attribute, and give it a name.
Well, no, we can't give up on (1) completely. That'd mean that eventually we'd need to change the ABI and break userspace. The difference between exposing internal details and reasonable abstractions is by no means black and white.
AFAICT, RECLAIMABLE_CACHE_PAGES is a reasonable thing to support. Can anyone come up with a reason why we couldn't do that in the future?
It can. but the problem is, that is completely useless. Because of, 1) dirty pages writing-out is sometimes very slow and 2) libc and some important library's pages are critical important for running a system even though it is clean and reclaimable. In other word, kernel don't have an info then can't expose it.