что такое force safe point

Alexey Ragozin

All my articles on the net

Pages

Monday, October 1, 2012

Safepoints in HotSpot JVM

Safepoints

How safepoints work?

When safepoints are used?

Trouble shooting safepoints

References

16 comments:

I think the Azul JVM also used to do this to quickly trap moved/GC’ed addresses.

что такое force safe point. . что такое force safe point фото. что такое force safe point-. картинка что такое force safe point. картинка . All my articles on the net

Using page faults for read barrier («quickly trap moved/GC’ed addresses») would be prohibitively expensive. Azul JVM does not use page faults for read barrier, though it is using this technique for defragmenting physical memory associated with large object.

Azul is using custom page mapping to facilitate software read barrier, but this technique does not relay on page faults.

Or at least it was that way last time I was working with Azul.

Thank you for an eye-opening article on safepoints. Do you know if there is any way to identify the reason for a huge pause of hundreds of seconds that does not appear to be related to GC activity?

Total time for which application threads were stopped: 0.0020916 seconds
Total time for which application threads were stopped: 0.0677614 seconds
Total time for which application threads were stopped: 0.0016208 seconds
Total time for which application threads were stopped: 195.2580105 seconds
Total time for which application threads were stopped: 0.0313111 seconds
Total time for which application threads were stopped: 0.0005465 seconds
Total time for which application threads were stopped: 0.0006269 seconds

что такое force safe point. . что такое force safe point фото. что такое force safe point-. картинка что такое force safe point. картинка . All my articles on the net

Last problem with slow safepoints, was bug in JIT combined with weird application code.

Trying latest JVM is another step.

We switched to 1.6.0_43, at the time that happened we had 1.6.0_31. One of the reasons was bug 2221291. Can you tell me the bug ID for the problem related to JIT?

что такое force safe point. . что такое force safe point фото. что такое force safe point-. картинка что такое force safe point. картинка . All my articles on the net

No, I didn’t track exact bug. Slight change of code has solved issue in my case.
Yep, 2221291 is a nasty one.

Very informative article, thank you. We have seen due to IO overload inside Linux. When this happens, GC log entries show use_time

at least 1 second. We are able to recreate this type of stalls in the lab too. It turns out that deferred writes to append a file can be blocked for a long time when the write is blocked by journal commit. Or when dirty_ratio is exceeded. We straced the Java process and could correlate some but not all of the stalls to GC threads when they write to the gc.log file. If GC threads do not have park the Java threads running in kernel mode, we are stumped about what else could have caused the stall (where user_time

0). Any other data/traces you would recommend to help us understand the issue better? Many thanks.

что такое force safe point. . что такое force safe point фото. что такое force safe point-. картинка что такое force safe point. картинка . All my articles on the net

Sometimes I’ve seen JVM spending too much time trying to enter to safe point. Safe point initiation time is accounted to GC pause time.

Another suspects are native threads taking GC lock via JNI (+XX:+PrintJNIGCStals may help to identify if this is a case).

что такое force safe point. blank. что такое force safe point фото. что такое force safe point-blank. картинка что такое force safe point. картинка blank. All my articles on the net

S0C S1C S0U S1U EC EU OC OU PC PU YGC YGCT FGC FGCT GCT

77440.0 73088.0 22896.4 0.0 1946624.0 222690.4 4194304.0 3638965.1 262144.0 216641.1 1093 11258.452 3 10031.493 21289.944

что такое force safe point. . что такое force safe point фото. что такое force safe point-. картинка что такое force safe point. картинка . All my articles on the net

I would also suggest you to post question on stackoverflow.com (and post link here) as it is better platform for that kind of questions.

что такое force safe point. blank. что такое force safe point фото. что такое force safe point-blank. картинка что такое force safe point. картинка blank. All my articles on the net

Hi Alexey, as suggested by you i have posted question on stackoverflow.com and here is the link

Also here is the start up parameters and PrintGCDetails are not enabled and will take time as it is production server.

что такое force safe point. blank. что такое force safe point фото. что такое force safe point-blank. картинка что такое force safe point. картинка blank. All my articles on the net

Running VMStat for 5 hours has given the following result, i am providing a part of the output:
swap free re mf pi po 40336468 4025208 383 5473 465 59 40336132 4025732 383 5477 465 59 40336020 4025732 383 5478 465 59 40335940 4025752 383 5479 465 59 40335860 4025776 383 5479 465 59 40335776 4025796 383 5480 465 59 40335696 4025816 383 5481 465 59 40335584 4025816 383 5482 464 59 40335504 4025836 383 5483 464 59 40335420 4025856 383 5484 464 59

Can we inference something from this output

I am getting millions of following messages:
54.104: ThreadDump [ 153 2 3 ] [ 0 0 0 0 0 ] 0
vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count
54.104: ThreadDump [ 153 3 4 ] [ 0 0 0 0 0 ] 0
vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count
54.104: ThreadDump [ 153 1 6 ] [ 0 0 0 0 0 ] 0
vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count
54.104: ThreadDump [ 153 2 2 ] [ 0 0 0 0 0 ] 0
vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count
54.105: ThreadDump [ 153 0 2 ] [ 0 0 0 0 0 ] 0
vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count
54.105: ThreadDump [ 153 1 6 ] [ 0 0 0 0 0 ] 0
vmop [threads: total initially_running wait_to_block] [time: spin block sync cleanup vmop] page_trap_count

What could be the reason of ThreadDump activity in SafePoint?

что такое force safe point. . что такое force safe point фото. что такое force safe point-. картинка что такое force safe point. картинка . All my articles on the net

I would guess, it is result of profiler. Thread dumps are widely used by profiler and sometimes by monitoring tools. Java code could also cause thread dump for itself.

Thanks for your quick updates.

There are no profiler attached to the java process.

I don’t see any log of general Threaddumps it means they are Internal Thread dumps as you mentioned.

Any other suggestions what to look for next?

Источник

Что такое force safe point

что такое force safe point. avatar2578973 2. что такое force safe point фото. что такое force safe point-avatar2578973 2. картинка что такое force safe point. картинка avatar2578973 2. All my articles on the net

что такое force safe point. red left. что такое force safe point фото. что такое force safe point-red left. картинка что такое force safe point. картинка red left. All my articles on the netчто такое force safe point. red. что такое force safe point фото. что такое force safe point-red. картинка что такое force safe point. картинка red. All my articles on the netчто такое force safe point. red right. что такое force safe point фото. что такое force safe point-red right. картинка что такое force safe point. картинка red right. All my articles on the net
что такое force safe point. grey left. что такое force safe point фото. что такое force safe point-grey left. картинка что такое force safe point. картинка grey left. All my articles on the netчто такое force safe point. grey. что такое force safe point фото. что такое force safe point-grey. картинка что такое force safe point. картинка grey. All my articles on the netчто такое force safe point. grey right. что такое force safe point фото. что такое force safe point-grey right. картинка что такое force safe point. картинка grey right. All my articles on the net
что такое force safe point. green left. что такое force safe point фото. что такое force safe point-green left. картинка что такое force safe point. картинка green left. All my articles on the net

что такое force safe point. green. что такое force safe point фото. что такое force safe point-green. картинка что такое force safe point. картинка green. All my articles on the net

что такое force safe point. green right. что такое force safe point фото. что такое force safe point-green right. картинка что такое force safe point. картинка green right. All my articles on the net

Safe Point is just a feature that makes ur b1g aimbot go for points on the player that intersect both desync and real.
An example is if someone is freestanding, their desync will extremely close to their real (nature of desync) with their heads being
basically behind or infront of each other.

Safe point will recognize this, and be like. We can def shoot there, as the bullet will still hit thee real player.
You really shouldn’t be missing a shot due to bad animations with safe point, but I’ve seen some hacks still fail to hit.

Just have 3 matrixes, 2 being the possible desync resolve directions, and the 3rd one being the original.

Scan for a hitbox to shoot, and then re-trace and see if it intersects all 3 hitboxes.
(You can use this tracing method for also triggerbot bt, and missed shot calculations)

Another and lazier method which is LESS reliable is using angToLocal:
You can check if the person is leaning to the left or right on your side
This usually means that desync head and real head are extremely close (freestanding)

If they aren’t, or the lean doesn’t seem good, just go for the pelvis, which has the smallest fake body from my experience.

But I would recommend with trace-raying hitboxes (there are many SDKs with it)
— Usually stored in gamer software’s math files (math.cpp)
— Usually labelled like, TraceHitbox, and requires a few other math. like IntersectInfinityRayWithSphere or smth like that

That’s my take on it at least, and if anyone would like to correct me, please do :3

что такое force safe point. trans. что такое force safe point фото. что такое force safe point-trans. картинка что такое force safe point. картинка trans. All my articles on the net

что такое force safe point. avatar221057 3. что такое force safe point фото. что такое force safe point-avatar221057 3. картинка что такое force safe point. картинка avatar221057 3. All my articles on the net

что такое force safe point. red left. что такое force safe point фото. что такое force safe point-red left. картинка что такое force safe point. картинка red left. All my articles on the netчто такое force safe point. red. что такое force safe point фото. что такое force safe point-red. картинка что такое force safe point. картинка red. All my articles on the netчто такое force safe point. red right. что такое force safe point фото. что такое force safe point-red right. картинка что такое force safe point. картинка red right. All my articles on the net
что такое force safe point. grey left. что такое force safe point фото. что такое force safe point-grey left. картинка что такое force safe point. картинка grey left. All my articles on the netчто такое force safe point. grey. что такое force safe point фото. что такое force safe point-grey. картинка что такое force safe point. картинка grey. All my articles on the netчто такое force safe point. grey right. что такое force safe point фото. что такое force safe point-grey right. картинка что такое force safe point. картинка grey right. All my articles on the net
что такое force safe point. green left. что такое force safe point фото. что такое force safe point-green left. картинка что такое force safe point. картинка green left. All my articles on the net

что такое force safe point. green. что такое force safe point фото. что такое force safe point-green. картинка что такое force safe point. картинка green. All my articles on the net

что такое force safe point. green right. что такое force safe point фото. что такое force safe point-green right. картинка что такое force safe point. картинка green right. All my articles on the net

Safe Point is just a feature that makes ur b1g aimbot go for points on the player that intersect both desync and real.
An example is if someone is freestanding, their desync will extremely close to their real (nature of desync) with their heads being
basically behind or infront of each other.

Safe point will recognize this, and be like. We can def shoot there, as the bullet will still hit thee real player.
You really shouldn’t be missing a shot due to bad animations with safe point, but I’ve seen some hacks still fail to hit.

Just have 3 matrixes, 2 being the possible desync resolve directions, and the 3rd one being the original.

Scan for a hitbox to shoot, and then re-trace and see if it intersects all 3 hitboxes.
(You can use this tracing method for also triggerbot bt, and missed shot calculations)

Another and lazier method which is LESS reliable is using angToLocal:
You can check if the person is leaning to the left or right on your side
This usually means that desync head and real head are extremely close (freestanding)

If they aren’t, or the lean doesn’t seem good, just go for the pelvis, which has the smallest fake body from my experience.

But I would recommend with trace-raying hitboxes (there are many SDKs with it)

That’s my take on it at least, and if anyone would like to correct me, please do :3

to save urself some fps, its enough to grab the points from matrix a and then trace them onto the opposite direction. if they hit (could add a check if its the same hitbox if needed) u know that they overlap.

consider ur points are within the hitboxes and not outside, if your points are literally on the edge or further u might want to trace both matrix i guess

что такое force safe point. DenJgYu. что такое force safe point фото. что такое force safe point-DenJgYu. картинка что такое force safe point. картинка DenJgYu. All my articles on the net

eg. take points with blue matrix, set bonematrix to green and trace the points u got from blue

Источник

SAFe или Scaled Agile Framework

Что такое SAFe?

Что такое Agile многие знают. Еще большее количество людей, причастных к IT используют терминологию. Еще больше тех, кто слышал об Agile.

Далеко не все, кто уверенно использует термин Agile для общения, критики, для того; чтобы представить свою комманду или компанию в лучшем свете понимают, например, в чем отличие между SCRUM и Agile; и часто ставят между этими двумя разными понятиями знак равенства. Но вот не так давно в 2015 году появился еще и SAFe. Что это и зачем он нужен?

Одним из важных преимуществ и недостатков SCRUM-а я считаю предписываемый размер команд — 7+-2 (или 3-9 более свежие данные из Scrum Guide) включая Product Owner.
Безусловно 9 высококлассных и хорошо замотивированных профессионала способны на многое, но иногда бывает необходимость все-таки построить что-то большим количеством рук, голов, глаз и мозгов в конце-концов. Раздувать команды — плохо, значит их количество надо наращивать, а тут возникает проблема коммуникации между командами, синхронизация работы и сам по себе SCRUM никакого решения для этих задач не предлагает. Есть попытки использовать SCRUM на уровне управления SCRUM командами (так советует делать Jeff Sutherland — один из авторов Agile manifesto), есть Large Scale Scrum, есть Disciplined Agile Delivery, есть много еще что, но еще есть SAFe — Scaled Agile Framework.

SAFe — это фреймворк для управления компанией в которой требуется координация работы над некоторым проектом или связанными проектами для 5 или более SCRUM командами. Т.е. это некая надстройка над SCRUM позволяющая управлять коллективами из 100 и более человек

Выгода?

В первую очередь, разумеется методология нужна тем, кто ее продает и занимается тренингами. На эту тему неплохо высказался Dave Thomas (еще один из авторов Agile manifesto) На GOTO 2015 в своей презентации Agile is Dead

Во-вторую очередь отделы управления программами. Те, кто раньше занимался управлением проектами, получали PMP сертификации, рисовали диаграммы Гантта и реализовывали концепцию твердо-мягкого управления (мягкой стороной к руководству и твердой к исполнителям). Дело в том, что в типичном SCRUM для них нет функции, в SAFe — есть. То же самое относится к разного рода архитекторам. В SCRUM для них нет функции в SAFe — есть карьерный путь.

Далее — это может быть выгодно тем владельцам бизнеса, где управляющие работают над большими, пожирающими огромное количество человеко-часов проектами и не могут (иногда по объективным причинам) сделать эти проекты независимыми.

Множеству разработчиков с квалификацией ниже среднего, т.к. часто для того, чтобы что-то сделать их нужно экспоненциально больше чем тех самых опытных и замотивированных профессионалов.

В целом индустрии. Т.к. количество разработчиков удваивается каждые 5 лет (см. uncle bob’s future of programming), следствием чего является то, что в каждый момент времени по крайней мере половина разработчиков обладают опытом работы менее 5 лет. Если тенденция не изменится, а судя по всему — не изменится, значит требуется процессы предписывающие и формализующие их рабочие функции, механизмы взаимодействия мужду участниками и в целом процессы.

что такое force safe point. image loader. что такое force safe point фото. что такое force safe point-image loader. картинка что такое force safe point. картинка image loader. All my articles on the net

SAFe — это слоеный пирог из различных методик Agile. На нижнем уровне находится практически традиционный SCRUM, с типичными двух-трех недельными спринтами, командами по 3-9 человек включая Product Owner. Все типичные ритуалы, начиная от ежедневной планерки — standup и заканчивая разбором полетов на restrospective. Хотя есть одно ключевое отличие. Команда перестает быть полнофункциональным независимым модулем. И спринт перестает быть независимым отрезком времени с полным жизненным циклом. Спринты объединяются в Program Increments состоящие из обычно 5 спринтов. Т.е. если в классическом SCRUM мы построили не то, что клиенту нравится — то мы производим коррекцию курса в следующем спринте, то в SAFe мы продолжаем идти в сторону обрыва до конца Program Increment в худшем случае следующие 4 спринта (разумеется я утрирую).

На следующем уровне у нас поезда — так называемые Agile Release Train. Для управления 5 спринтовыми отрезками появляются новые функции — системный архитектор (тот, кто владеет архитектурой — т.е. это больше не команда), product manager (тот кто управляет продуктом, а не Product Owner, последний ходит за советом к PM) и RTE — тот самый PMP из далекого мира waterfall. Здесь применяются некоторые наработки из Kanban в частности доска, способ назначения приоритетов и в целом остается принцип измерения исторической производительности команд (velocity) и проецирование того, что будет построено в конце временного отрезка в противовес подходу с оценками и назначением сроков выполнения для уже зафиксированного функционала (scope). Одним из нововведений становится то, что последний спринт из 5 объявляется организационным и во время него проводятся огромные собрания (все команды вместе — а это 100 и более человек), проводится анализ технического долга, строятся планы по проработке архитектуры и синхронизируется работа всех команд.

Над уровнем поездов у нас координация между отделами, директорами, и клиентом. Тут больше идет заимствование из Lean Agile, но сохраняются те же инструменты из Kanban. Здесь проводится анализ экономической целесообразности изменений. В идеале любые изменения проходят через предварительный анализ где выдвигается измеримая гипотеза о предстоящем изменении (например если мы произведем онлайн магазина из датацентра в облако, то быстро наращивая мощности в пик сезонных распродаж сможем увеличить количество сделок на 10%) и далее эта гипотеза либо подтверждается либо нет. Для компаний менее миллиарда долларов — это может быть самый последний этаж. Здесь же создаются планы работ на 12-36 месяцев (привет пятилетки качества, количества и т.д.)

Над уровнем больших систем идет управление портфолио. Распределяются средства на различные направления в бизнесе. Используется lean portfolio management, используя стратегию развития компании выбираются направления от которых можно получить отдачу. Здесь принимаются решения о покупке или слиянии с другими компаниями. Создание новых направлений бизнеса, закрытие старых. Регулярно проводится корректировка и прере назначение бюджета (в противовес квартальными или годовым планам). Для каждого компонента портфолио устанавливается набор более-менее стандартизированных метрик и далее все оцениваются по ним. Так же как и на 3 предыдущих уровнях есть специальные ритуалы для синхронизации каждые две недели (обычно) — происходит обмен статусами и ключевыми индикаторами.

Во-главе всего стратегия. То, как она определяется — фреймворк не описывает.

Плюсы

Недостатки

Внедрять или нет? Я считаю, что если есть выбор — то нет, лучше снижать зависимость между отделами и проектами. А если выбора нет и нужно управлять огромным проектом, то вполне можно.

Источник

Forcepoint обеспечит самую полную защиту на уровне пользователя

что такое force safe point. 5d5e62c3aa3dfe07b3a62850 mail. что такое force safe point фото. что такое force safe point-5d5e62c3aa3dfe07b3a62850 mail. картинка что такое force safe point. картинка 5d5e62c3aa3dfe07b3a62850 mail. All my articles on the net

что такое force safe point. 5d5e62c3cfc85e552d707b53 call. что такое force safe point фото. что такое force safe point-5d5e62c3cfc85e552d707b53 call. картинка что такое force safe point. картинка 5d5e62c3cfc85e552d707b53 call. All my articles on the net

Forcepoint обеспечит самую полную защиту на уровне пользователя

Даже при стремительно меняющихся технологических возможностях, IP-защита и безопасность данных – все равно остается в приоритете. Наш партнер Forcepoint предлагает широкий спектр продуктов, которые помогают защитить вашу организацию на уровне пользователя.

Решения от Forcepoint не только повышают веб-безопасность, но улучшают и производительность пользователей. Надежная защита сетей обеспечивается на протяжении всего жизненного цикла за счет проактивной технологией безопасности, которая дополняет традиционные решения.

В этой статье мы расскажем подробнее о продуктах Forcepoint.

Решения в облачной безопасности

В эпоху удаленной работы компании испытывают потребность в защите электронной почты и Интернета. Следующие решения в облачной безопасности от Forcepoint помогут вам защитить своих сотрудников.

С помощью Forcepoint Cloud Access Broker (CASB) вы сможете контролировать все облачные приложения, определяя доступ службам. CASB предотвращает взлом аккаунтов, используя передовые возможности машинного обучения и UEBA для определения поведенческих факторов.

Эффективность данного решения выше на 52%, чем у ближайшего конкурента. Forcepoint предлагает мобильные лицензии для всех архитектур развертывания для гибкого развития вашего бизнеса.

Forcepoint Email Security использует Advanced Classification Engine (ACE) для выявления угроз, начиная от назойливого спама и заканчивая атаками вредоносного ПО, фишинга и компрометации деловой почты. Вы сможете блокировать кражу данных и определять поведение пользователя с высоким риском.

Фильтрация URL-адресов Forcepoint блокирует веб-угрозы, снижая количество заражений вредоносным ПО и уменьшает количество инцидентов в службе. Это простое в развертывании решение для прозрачной фильтрации и безопасности.

Решения Forcepoint в сетевой безопасности

Забота о сетевой безопасности позволит вам лучше защититься от атак злоумышленников, поняв действия людей в сети. Брандмауэр нового поколения обеспечит самую передовую защиту вашего бизнеса.

Защита данных от внутренних угроз

Понимая мотивы и поведение людей, можно защитить конфиденциальную информацию и IP-адреса от злонамеренных и от непреднамеренных действий. Forcepoint предлагает два решения для защиты корпоративных данных от внутренних угроз.

Forcepoint Data Loss Prevention (DLP) определяет самых «опасных» пользователей, благодаря чему вы сможете сократить количество ложных срабатываний и настроить рабочий процесс инцидентов. Ваши сотрудники смогут безопасно работать на разных устройствах и подключаться к нескольким сетям и облачным приложениям.

С помощью UEBA вы определите потенциальные источники эксфильтрации данных и критическую потерю IP-адресов. В решении присутствует расширенное обнаружение взломанных аккаунтов.

Междоменная безопасность Forcepoint

На решения междоменного доступа полагаются национальные агентства и организации, которым необходима быстрый и безопасный обмен информацией. Междоменная безопасность обеспечивает надежную защиту конфиденциальных данных и сети.

Forcepoint Data Guard обеспечивает двунаправленную автоматическую передачу очень сложных данных, включая потоковое видео в режиме реального времени, между несколькими доменами и отвечает специфическим требованиям высокой безопасности, предъявляемым к правительственным средам.

Источник

Under the hood JVM: Safepoints

что такое force safe point. . что такое force safe point фото. что такое force safe point-. картинка что такое force safe point. картинка . All my articles on the net

So how can the JVM bring all threads into a safepoint state? The problem is suspending a thread at a known state, not just interrupting it. To achieve this goal JVMs have the Java threads suspend themselves at convenient spots if they observe a ‘safepoint flag’.

Bringing a Java Thread to a Safepoint

Java threads poll a ‘safepoint flag’ (global or thread level) at ‘reasonable’ intervals and transition into a safepoint state (thread is blocked at a safepoint) when they observe a ‘Go to safepoint’ flag. This is simple enough, but since we don’t want to spend all of our time checking if we need to stop the C1/C2 compilers (-client/-server JIT compilers) try and keep safepoint polls to a minimum. On top of the cost of the flag check itself, maintaining a ‘known state’ adds significant complexity to the implementation of certain optimizations and so keeping safepoints further apart opens up a wider scope for optimization. These considerations combined lead to the following locations for safepoint polls:

From the mechanical sympathy mailing thread

1. A thread can be at a safepoint or not be at a safepoint. When at a safepoint, the thread’s representation of it’s Java machine state is well described, and can be safely manipulated and observed by other threads in the JVM. When not at a safepoint, the thread’s representation of the java machine state will NOT be manipulated by other threads in the JVM. [Note that other threads do not manipulate a thread’s actual logical machine state, just it’s representation of that state. A simple example of changing the representation of machine state is changing the virtual addresss that a java reference stack variable points to as a result of relocating that object. The logical state of the reference variable is not affected by this change, as the reference still refers to the same object, and two references variable referring to the same object will still be logically equal to each other even if they temporarily point to different virtual addresses].

2. “Being at a safepoint” does not mean “being blocked” (e.g. JNI code runs at a safepoint), but “being blocked” always happens at a safepoint.

3. The JVM may choose to reach a global safepoint (aka Stop-The-World), where all threads are at a safepoint and can’t leave the safe point until the JVM decides to let it do so. This is useful for doing all sorts of work (like certain GC operations, deoptimization during class loading, etc.) that require ALL threads to be at a well described state.

4. Some JVMs can bring individual threads to safepoint without requiring a global safepoint. E.g. Zing uses the term Checkpoint (first published in [1]) to describe a JVM mechanism that individually passes threads through thread-specidfic safepoints to perform certain very short operations on individual thread state without requiring a Stop-The-Wolrd pause.

5. When you write Unsafe java code, you must assume that a safepoint MAY occur between any two bytecodes.

6. Unsafe calls are not required to have safepoints within them (and many/most don’t), but they MAY include one or more safepoints. E.g. an unsafe memoryCopy MAY include a periodic safepoint opportunities (e.g. take a safepoint every 16KB). Zing sure does, as we do a lot of under the hood work to keep TTSP in check.

7. All [practical] JVMs apply some highly efficient mechanism for frequently crossing safepoint opportunities, where the thread does not actually enter a safepoint unless someone else indicates the need to do so. E.g. most call sites and loop backedges in generated code will include some sort of safepoint polling sequence that amounts to “do I need to go to a safepoint now?”. Many HotSpot variants (OpenJDK and Oracle JDK) currently use a simple global “go to safepoint” indicator in the form of a page that is protected when a safepoint is needed, and unprotected otherwise. The safepoint polling for this mechanism amounts to a load from a fixed address in that page. If the load traps with a SEGV, the thread knows it needs to go to enter a safepoint. Zing uses a different, per-thread go-to-safepoint indicator of similar efficiency.

8. All JNI code executes at a safepoint. No Java machine state of the executing thread can be changed or observed by it’s JNI code while at a safepoint. Any manipulation or observation of Java state done by JNI code is achieved via JNI API calls that leave the safepoint for the duration of the API call, and then enter a safepoint again before returning to the calling JNI code. This “crossing of the JNI line” is where most of the JNI call and API overhead lies, but it’s fairly quick (entering and leaving safepoint normally amounts to some CAS operations).

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *