Это будет работать очень хорошо, если входной URL не является полным нежелательным. Он удаляет субдомен.
$host = parse_url( $Row->url, PHP_URL_HOST );
$parts = explode( '.', $host );
$parts = array_reverse( $parts );
$domain = $parts[1].'.'.$parts[0];
Пример
Вход: http://www2.website.com:8080/some/file/structure?some=parameters
Выход: website.com
Этот [vectors]
предназначен для страницы диапазона векторов для рук, имя определено в aarch32_setup_vectors_page
функции arch/arm64/kernel/vdso.c
#define AARCH32_VECTORS_BASE 0xffff0000
....
int aarch32_setup_vectors_page(struct linux_binprm *bprm, int uses_interp)
{
...
unsigned long addr = AARCH32_VECTORS_BASE;
static const struct vm_special_mapping spec = {
.name = "[vectors]",
.pages = vectors_page,
};
...
current->mm->context.vdso = (void *)addr;
/* Map vectors page at the high address. */
ret = _install_special_mapping(mm, addr, PAGE_SIZE,
VM_READ|VM_EXEC|VM_MAYREAD|VM_MAYEXEC,
&spec);
...
}
и в arch_vma_name
arch / arm / kernel / process.c
/*
* The vectors page is always readable from user space for the
* atomic helpers. Insert it into the gate_vma so that it is visible
* through ptrace and /proc/<pid>/mem.
*/
static struct vm_area_struct gate_vma = {
.vm_start = 0xffff0000,
.vm_end = 0xffff0000 + PAGE_SIZE,
.vm_flags = VM_READ | VM_EXEC | VM_MAYREAD | VM_MAYEXEC,
};
...
const char *arch_vma_name(struct vm_area_struct *vma)
{
return is_gate_vma(vma) ? "[vectors]" : NULL;
}
Я не уверен, что perf покажет правильный адрес для профилирования образцов в этой области, он может быть смещен внутри раздела ...
Еще один вопрос о векторной странице руки: Отображение страниц в векторных файлах для ARM
«Таблица векторных исключений» на arm32 является сопоставлено с 0xffff0000, согласно https://doar-e.github.io/blog/2014/04/30/corrupting-arm-evt/ Вы можете проверить вывод cat /proc/self/maps
на платформе и выгрузить страницу из смещения 0xffff0000 с помощью gdb x/1024wx 0xffff0000
.
Презентация о новых vdso на arm64 https://blog.linuxplumbersconf.org/2016/ocw/system/presentations/3711/original /LPC_vDSO.pdf
ldrex
являются атомарными, поэтому этот код может быть реализацией некоторого примитива атомной синхронизации стиля LL / SC . Проверьте многопоточную синхронизацию программы и аппаратные функции вашего процессора. – osgx 16 July 2018 в 22:57